Welches PHP-Framework wird zusätzlich zur Spaghetti-Codebase verwendet?

8

Mein Team muss eine große PHP-Anwendung verwalten, die sehr schlecht geschrieben wurde. Es ist eine Mischung aus HTML, Javascript und SQL auf einer großen schlecht entworfenen Datenbank (zB es hat eine Tabelle mit einigen hundert Spalten). Der einzige Vorteil der Codebasis ist, dass es funktioniert.

Wir reparieren und reparieren ständig Teile davon.

Ich möchte den Umschreibungen, die wir machen, eine Struktur geben, also habe ich ein mvc-Framework in die Codebasis integriert. Können Sie einen guten Rahmen für die Umwelt vorschlagen?

Hier ist eine Liste von Dingen, die ich von einem solchen Rahmen erwarten würde:

  • Die API muss sehr stabil sein. Wir können es uns nicht leisten, den Code für jede Version neu zu schreiben.
  • Custom Session Management oder zumindest Arbeiten an Standard $ _SESSION [] (Um mit altem Code zu sprechen).
  • Benutzerdefinierte Authentifizierung
  • Die Verwendung von Raw SQL sollte gut unterstützt werden (Die Datenbank ist schwer in Bezug auf Objekte darzustellen).
  • Es sollte nicht davon ausgegangen werden, dass ich eine Tabelle pro Controller haben werde.
Piotr Czapla 26.01.2010, 14:30
quelle

2 Antworten

2

Ich wiederhole Zend, um zu zeigen, wie es zu deinen spezifischen Anforderungen passt:

  
  • Die API muss sehr stabil sein. Wir können es uns nicht leisten, den Code für jede Version neu zu schreiben.
  •   

Wie bereits erwähnt, tendiert die API dazu, zwischen kleineren Versionen stabil zu sein. Hauptversionen mit Änderungen sollten nicht schwer zu integrieren sein.

  
  • Benutzerdefinierte Session-Verwaltung oder zumindest Arbeiten an Standard $ _SESSION [] (Um mit altem Code zu sprechen).
  •   

Zend_Session tut genau das, was Sie wollen. Der Standard-Sitzungsspeicher ist $ _SESSION, zu dem Zend ein Namespace-Konzept hinzufügt. Ihr vorhandener Code sollte in Ordnung sein, und jeder neue Code kann das Zend-Objekt verwenden, um sicherzustellen, dass es keine Überlappungen mit Variablennamen gibt.

  
  • Benutzerdefinierte Authentifizierung.
  •   

Zend_Auth hat ein paar Authentifizierungs-Backends, aber es soll Ihnen ermöglichen, Implementiere deine eigene Auth.

  
  • Die Verwendung von Raw SQL sollte gut unterstützt werden (Die Datenbank ist schwer in Bezug auf Objekte darzustellen).
  •   

Zend_DB implementiert die Tabelle Gateway-Muster, das Sie die Daten über das Objekt zugreifen können zu; Sie können SQL jedoch auch direkt verwenden und die Ergebnisse als Arrays abrufen.

  
  • Es sollte nicht davon ausgegangen werden, dass ich eine Tabelle pro Controller haben werde.
  •   

Zend_Controller und der Rest von Zend MVC Implementierung macht keine Annahmen über das Modell, Ich überlasse das ganz Ihnen. Ich bin sicher, dass einige Leute nicht mögen, aber es ist der einzige Bereich des MVC-Design, das sich stark von Projekt zu Projekt unterschiedlich - so dass vollständig dem Entwickler überlassen wird. Sie können einige der DB-Klassen erweitern oder einfach den vorhandenen DB-Zugriffscode verwenden.

Das ist ein Beispiel für die Pick-and-Choser-Mentalität des Zend Framework. Sie können wirklich jede Bibliothek selbst benutzen. Das sollte gut mit Ihrem Projekt funktionieren. Zum Beispiel könnten Sie verwenden Zend_View ohne den Rest der MVC Klassen Ihr nur zu bewegen, Präsentation in Vorlagen. Oder benutze einfach Zend_Auth, um das existierende Auth-System zu ersetzen. Mit Zend können Sie Ihr Projekt nach und nach in einen strukturierteren Zustand versetzen.

    
Tim Lytle 26.01.2010, 15:47
quelle
3

Ich empfehle Zend Framework für diesen Zweck, weil es ein Leim-Framework ist. Mit ZF werden Sie nicht in den Kabelbaum gezwungen, wie das Framework von Ihnen erwartet, dass Sie damit arbeiten. Sie können auswählen, was Sie wollen und nach und nach Ihren Legacy-Code durch Code von ZF ersetzen. Es unterstützt auch all die Dinge, die Sie erwähnt haben.

Außerdem schlage ich vor, die verschiedenen QA-Tools, die Sie unter phpqatools.org finden, auszuführen, um Sie beim Debuggen und Refactoring zu unterstützen.

>

Framework Vergleiche

Gordon 26.01.2010 14:34
quelle

Tags und Links