Autor: heiyeluren
Blog: http://blog.csdn.net/heiyeshuwu
Zeit: 5.5.2008
In letzter Zeit habe ich einfach mehrere gängige ausländische PHP-Frameworks verwendet, die derzeit in China verwendet werden. Ich möchte kurz mitteilen, welche Frameworks bei der Auswahl verwendet werden sollten als Referenz.
Zu den wichtigsten Referenz-Frameworks gehören: CodeIgniter, CakePHP und Symfony.
Hinweis: Ich habe viele Frameworks nur kurz ausprobiert. Bitte korrigieren Sie mich und lassen Sie uns gemeinsam wachsen. :-)
【CodeIgniter】
Offizielle Website: http://codeigniter.com
Chinesische Website: http://codeigniter.org.cn
Chinesisches Handbuch: http://codeigniter.org.cn/user_guide
Video-Tutorial: http://codeigniter.org.cn/tutorials
Testversion: CodeIgniter_1.6.1
Vorteile:
1. Die Konfiguration ist einfach, alle Konfigurationen werden mithilfe von PHP-Skripten konfiguriert und die Ausführungseffizienz ist hoch. Es verfügt über grundlegende Routing-Funktionen und kann bis zu einem gewissen Grad Routing durchführen. Es verfügt über vorläufige Layout-Funktionen und kann ein bestimmtes Erscheinungsbild der Schnittstelle erstellen ; Die Datenbankschicht ist gut gekapselt und verfügt über grundlegende MVC-Funktionalität
2. Schnell und prägnant, nicht viel Code, hohe Ausführungsleistung, einfaches Framework, einfach zu verwenden, niedrige Lernkosten, detaillierte Dokumentation, viele einfache und benutzerfreundliche Bibliotheken, und das Framework ist für kleine Anwendungen geeignet
. Nachteile:
1. Verstehen Sie die Modellebene einfach als Datenbankoperationen
2. Das Framework ist etwas einfach und kann nur die Anforderungen kleiner Anwendungen erfüllen, ist jedoch etwas weniger in der Lage, die Anforderungen mittelgroßer Anwendungen zu erfüllen
.
Im Allgemeinen lohnt es sich, CodeIgniter zu verwenden, um einfache und schnelle Anwendungen auszuführen. Gleichzeitig kann ein gewisses Maß an Layout erstellt werden, um die Wiederverwendung von Vorlagen zu erleichtern. Die Datenoperationsschicht ist gut gekapselt, und CodeIgniter verwendet nicht viele Zu komplexe Entwurfsmuster. Sowohl die Leistung als auch die Lesbarkeit des Codes sind gut. Auch die zusätzliche Bibliothek ist ziemlich gut, einfach und effizient.
【CakePHP】
Offizielle Website: http://www.cakephp.org
Chinesisches Handbuch: http://www.1x3x.net/cakephp
Video-Tutorial: http://search.you.video.sina.com.cn/s?key=cakephp
Testversion: cake_1.1.19.6305
Vorteile:
1. CakePHP ist das Framework, das RoR am ähnlichsten ist, einschließlich der Entwurfsmethode und der Active Record-Methode für den Datenbankbetrieb Nicht schlecht; Die Funktionen hasOne und hasMany sind für komplexe Geschäftsverarbeitungen nicht schlecht Jede Schicht von MVC verfügt über eine automatische Befehlszeilen-Skriptfunktion.
2.
Die Dokumentation ist relativ vollständig und wurde in China erfolgreich beworben. Die Lernkosten sind mittelmäßig.
1. Ein sehr ernstes Problem bei CakePHP besteht darin, dass es Model als eine Operation auf Datenbankebene versteht, was seine Fähigkeit, andere Operationen als die Datenbank durchzuführen, ernsthaft beeinträchtigt.
2.
Die Cache-Funktion von CakePHP ist etwas schwach und die Konfigurationsfunktion ist nicht für große Anwendungen geeignet, sondern nur für mittelgroße Anwendungen. Der Lernaufwand ist etwas höher für kleine Anwendungen.
Im Allgemeinen stellt das CakePHP-Framework eine sehr wichtige Ära dar und ist ein Vertreter des PHP-Frameworks. Viele selbst geschriebene Frameworks imitieren die CakePHP-Methode, die ein bahnbrechendes Produkt ist, das die RoR-Agile-Entwicklungsmethoden offenbart Die Designphilosophie, Datenbankoperationen als einziges Modell zu betrachten, sind hervorragende Werkzeuge für die Entwicklung schneller Anwendungen und Prototypen. Ebenso lohnt es sich, sie als Entwicklungsframework für Web 2.0-Websites zu wählen.
【Zend Framework】
Offizielle Website: http://framework.zend.com
Chinesisches Handbuch: http://www.phpeye.com/zf
Video-Tutorial: http://framework.zend.com/docs/screencasts
Testversion: ZendFramework-1.5.0
Vorteile:
1. Offiziell produziert, enthält es viele Bibliotheken. Das Framework selbst ist sehr elegant und die Ausführungseffizienz ist relativ einfach, es verfügt über Routing-Funktionen und die Konfigurationsdatei ist relativ leistungsfähig (kann XML und PHP-INI verarbeiten), verschiedene Bibliotheken sind sehr leistungsfähig und verfügen über die umfassendsten Funktionen unter allen PHP-Frameworks, einschließlich der Tatsache, dass es sich nicht nur um ein Framework, sondern auch um eine große Klassenbibliothek handelt (die PEAR ersetzt). seine Hauptfunktion: Es unterstützt intuitiv die Modellebene zusätzlich zu Datenbankoperationen (stärker als CodeIgniter und CakePHP) und kann die Loader-Funktion problemlos zum Laden anderer neu hinzugefügter Klassen verwenden Front-End-Cache zum Back-End-Cache unterstützt Memcache, APC, SQLite, Dateien usw.; die Datenbankbetriebsfunktion ist sehr leistungsfähig und unterstützt verschiedene Treiber (Adapter).
sehr
ausgereift und wird derzeit von vielen Web 2.0-Websites verwendet, und die Lernkosten sind mittelmäßig.
1. Die MVC-Funktion ist relativ schwach, die Ansichtsebene ist einfach implementiert (so wie sie nicht implementiert ist) und kann die Front-End-Seite nicht sehr leistungsstark steuern.
2. Es gibt kein automatisiertes Skript, einschließlich der Eingabedatei, Sie müssen es manuell erstellen. Die Eingabekosten sind hoch.
3. Zend Framework stellt als mittelgroßes Anwendungsframework kein großes Problem dar und kann kaum als Framework für große Anwendungen verwendet werden. Da es sich jedoch um ein sehr ausgereiftes PHP-Framework in großem Maßstab handelt, sind noch einige Anstrengungen
erforderlich auswerten:
Als offiziell produziertes Framework sind die Ambitionen von Zend Framework vorhersehbar. Es möchte andere Frameworks verdrängen und gleichzeitig viele leistungsstarke Klassenbibliotheken kapseln, um Framework-Dienste aus einer Hand bereitzustellen Aufgrund der Fähigkeit, sehr leistungsstarke Produkte zu entwickeln, ist es grundsätzlich sicher, dass Zend Framework eine glänzende Zukunft hat, wenn mehr Zeit in die Verbesserung des Frameworks investiert wird. Ebenso ist die Zend Framework-Architektur selbst relativ elegant, was zeigt, dass Zend offiziell über viele Experten verfügt und in Bezug auf Designkonzepte relativ fortgeschritten ist. Obwohl einige Funktionen nicht vollständig implementiert sind, wie z. B. die Ansichtsebene, Automatisierungsskripte usw., hängen diese alle davon ab auf die Zukunft. Im Allgemeinen ist Zend Framework das am meisten erwartete Framework. Natürlich ist es kein Problem, wenn Sie es jetzt in Ihren Projekten verwenden möchten.
【Symfony】
Offizielle Website: http://www.symfony-project.org
Chinesische Website: http://symfony-project.cn
Der endgültige Leitfaden: http://www.symfony-project.org/book
Lernreferenz: http://sf.thecodecentral.com
Testversion: symfony-1.0.13
Vorteile:
1. Symfony ist das leistungsstärkste PHP-Framework, das ich kenne, und ich verwende es schon seit langem, aber viele Funktionen wurden noch nicht entdeckt; es implementiert die drei Schichten von MVC vollständig und kapselt alles, einschließlich $_POST, $_GET Daten, Ausnahmebehandlung, Debugging-Funktion, Datenerkennung; inklusive leistungsstarker Caching-Funktion, automatisches Laden der Klasse (diese Funktion ist sehr cool), leistungsstarke i18n-Nationalisierungsunterstützung, sehr leistungsstarke Ansichtsschichtoperation und kann mehrere Dateien nacheinander enthalten; Mit der sehr leistungsstarken Konfigurationsfunktion können Sie alle Frameworks und Programmausführungsverhalten steuern, was so leistungsstark ist, dass es die Leute sprachlos macht. Sie können nach Belieben verschiedene eigene Klassen definieren, und Symfony kann diese Klassen automatisch laden (automatisch laden). Kann nach Belieben im Programm aufgerufen werden. Enthält ein leistungsstarkes mehrstufiges Projekt- und Anwendungsmanagement: Projekt -> Anwendung -> Modul -> Aktion, das die Anforderungen mehrerer Anwendungen unter einem Projekt erfüllen kann. und jede Ebene kann ihre eigene Klassenbibliothek, Layout und sehr leistungsstarke Befehlszeilenbetriebsfunktionen definieren, einschließlich Erstellungsprojekten, Erstellungsanwendungen, Erstellungsmodulen, Aktualisierung des Caches usw.;
2. Symfony ist definitiv die erste Wahl für die Entwicklung großer und komplexer Projekte, da durch die Verwendung von Symfony Entwicklungskosten erheblich gespart werden und es keine Probleme gibt, wenn mehrere Personen zusammenarbeiten. Nachdem die Basisklasse auf Projektebene definiert wurde, kann jedes Modul verwendet werden Nachteile einer starken Wiederverwendung von Code
:
1. Das Datenbankbetriebsmodell verwendet Schwergewichts-Prop und Creole, aber in der von mir getesteten Version wurden sie in das Add-on verschoben. Sie können verwendet werden oder nicht.
2. Die Cache-Funktion kann nicht jedes Mal während der Entwicklung und des Debuggens zwischengespeichert werden. Sie müssen Symfony CC und Symfony RC ausführen, um den Cache zu leeren und neu zu erstellen.
3. Die Effizienz ist nicht sehr hoch, insbesondere das Parsen von Vorlagen und das Lesen von Konfigurationsdateien, was viel Zeit in Anspruch nimmt.
4. Der Lernaufwand ist sehr hoch und es gibt in China keine ausgereifte Community und Dokumentation, nicht einmal ein chinesisches Handbuch. Dementsprechend dauert es viel Zeit, alle Funktionen zu beherrschen und
zu bewerten:
Symfony ist definitiv ein Framework auf Unternehmensebene, das scheinbar mit den leistungsstarken Frameworks im Java-Bereich mithalten kann. Leistungsfähige Dinge sind natürlich kompliziert zu erlernen, aber sie sind auch für die Projektentwicklung hilfreich Bei komplexen Projekten lohnt es sich meiner Meinung nach. Die Wartungskosten sind in der späteren Phase relativ gering und die Wiederverwendbarkeit ist sehr hoch. Wenn Sie Symfony für komplexere Internetprojekte verwenden, müssen Sie daher das Problem der Datenbankverteilung berücksichtigen. Dann müssen Sie die mit Symfony gelieferte Datenbankbetriebsschicht aufgeben und sie selbst definieren. Natürlich unterstützt Symfony die beliebige Konstruktion der Modellschicht.
[Allgemeiner Kommentar]
Die oben genannten Frameworks haben ihre eigenen Eigenschaften und sind alle Open-Source-Projekte. Im Allgemeinen sind CodeIngiter besser für kleine Projekte geeignet, während CakePHP und Zend Framework besser geeignet sind Bei mittelgroßen Projekten ist Symfony eher für große und schwere Projekte geeignet. Bei der Auswahl von Projekten müssen Sie die Anpassbarkeit und Skalierbarkeit des Frameworks vollständig berücksichtigen, da nicht für jedes Projekt festgelegt werden kann, ob Sie Änderungen vornehmen, wenn sich Ihre Anforderungen ändern.
Relativ gesehen haben Zend Framework und Symfony eine starke Fähigkeit, mit Änderungen umzugehen, insbesondere die Klassen in der Modellebene, die nach Belieben angepasst werden können, was es sehr bequem macht, eigene Geschäfts- oder Datenverarbeitungsklassen hinzuzufügen. Ich persönlich empfehle diese Frameworks Einsatz in mittleren und großen Projekten. CodeIngiter und CakePHP können auch bei kleinen und mittleren Projekten, der schnellen Entwicklung und dem Prototypenbau eine wichtige Rolle spielen und eignen sich sehr gut für die Entwicklung von Prototypenprojekten mit unklaren Zielen. Der beste Weg, ein Framework zu verstehen, besteht darin, es zu verwenden, und der beste Weg, es zu lernen, ist das Ansehen von Videos. :-)
Wohlwollende Menschen haben unterschiedliche Meinungen und weise Menschen haben unterschiedliche Meinungen. Wenn Sie ein Framework für ein Projekt auswählen, prüfen Sie bitte sorgfältig die Anforderungen des Projekts und zukünftige Änderungen und wählen Sie dann ein geeignetes Framework aus, um ein angemessenes Gleichgewicht zwischen Projektentwicklungsgeschwindigkeit und zu erreichen Spätere Wartbarkeit. Vielleicht ist es besser, selbst ein Framework zu schreiben. :-)
Ich habe eine allgemeine Bewertung mehrerer Frameworks vorgenommen, daher belasse ich es einfach dabei. Kommentare und Korrekturen sind ebenfalls willkommen!