Zend Framework ist ein Open-Source-PHP-Entwicklungsframework, das vollständig auf PHP5 basiert und zur Entwicklung von Webprogrammen und -diensten verwendet werden kann. Es verwendet das MVC-Architekturmuster (Model-View-Controller), um verschiedene Teile der Anwendung zu trennen Erleichterung der Programmentwicklung und -wartung.
ZF2 ist nicht nur ein lückenhaftes Update wie andere Frameworks, sondern schreibt den gesamten Code von ZF1 komplett neu.
Werfen wir einen Blick auf die neuen Funktionen von ZF2:
1. Modularisierung (ModuleManager)
Im Vergleich zu ZF1 unterstützt ZF2 nativ das Konzept von Modulen. Jedes PHP-Programm eines Drittanbieters kann in ein Zend-Modul umgewandelt werden, solange es den Codierungsstandards und der Codestruktur von Zend folgt. Derzeit ist eine Reihe experimenteller Module veröffentlicht (siehe ZF2-Module). Es gibt viele hervorragende Projekte wie Doctrine ORM.
Es ist absehbar, dass mit der langsamen Reife von ZF2 immer mehr optionale Module entstehen werden. Es ist möglich, dass die zukünftige Projektentwicklung auf Basis von ZF2 so einfach und unkompliziert sein wird wie Bausteine.
2. Ereignisgesteuert (EventManager)
In herkömmlichen Programmen werden Codes in einer linearen Reihenfolge ausgeführt, sodass es während der Entwicklung oft schwierig ist, einige Funktionen in eine Komponente oder ein Modul zu unterteilen.
Ereignisgesteuert oder Hook ändert die Art und Weise, wie normale Programme auf eine optimierte Art und Weise ausgeführt werden. Nach der ereignisgesteuerten Anwendung wird das Programm auf eine sprungartige Art und Weise ausgeführt: „registriertes Ereignis“ => „ausgelöstes Ereignis“, das ausgeführt werden kann ohne Beeinträchtigung Mit dem ursprünglichen Programmcode ist es einfach, an jeder Stelle neue Geschäftslogik hinzuzufügen, was die Projektentwicklung äußerst flexibel macht.
3. ServiceManager
Das Konzept des Service Managers stammt aus der Programmieridee des „Service Locator Pattern“. Diese Idee befürwortet das Extrahieren jeder unabhängigen Funktion im Programm als „Dienst“. Nur wenn der Dienst aufgerufen wird, wird das dienstbezogene Programm gestartet.
Dies ist das Geheimnis der Leistungsverbesserung von ZF2. Die Idee von ServiceLocator spiegelt sich überall im MVC-Startprozess wider. Die Aufrufe von Funktionsmodulen sind äußerst „geizig“, was für Entwickler, die zuvor Probleme hatten, sicherlich eine große Überraschung sein wird mit Zends Auftritt.
4. Abhängigkeitsinjektion
Abhängigkeitsinjektion wird häufig in Mainstream-Java-Frameworks verwendet und kann große Anwendungen effektiv entkoppeln. Die Einführung von Di in ZF2 erforderte wiederholte Überlegungen und Kompromisse. Selbst nach Eintritt in die Beta-Phase wurde Di immer noch als grundlegende Implementierungslösung für ZF2 verwendet, und die gesamte Mvc-Konfiguration basierte auf Di. Um zu vermeiden, dass Di in den Sumpf der Metadatenprogrammierung (Metaprogrammierung) gerät, wird Di letztendlich nur als unterste Implementierung von ZF2 verwendet und ServiceManager zur oberen Ebene hinzugefügt. Normale Entwickler müssen bei der Verwendung von ZF2 nicht dem Di-Level ausgesetzt sein. Dies hindert DI jedoch nicht daran, als hervorragende PHP-Komponente zu existieren und zu funktionieren.
5. Soziale Programmierung
Der Code von ZF2 wird vollständig auf Github gehostet. Dank des hervorragenden Designs von Github kann jeder problemlos an der ZF2-Projektkonstruktion über Fork teilnehmen und sogar neue Modulfunktionen einreichen. Der Autor AlloVince half dem Zend-Team auch bei der Behebung einiger Fehler und stellte fest, dass das Zend-Team sehr schnell reagierte (nie länger als 24 Stunden) und sich die Zeit nahm, Feedback ernst zu nehmen. Daher ist die Teilnahme am ZF2-Projekt eine gute Wahl für die Teilnahme am PHP-Open-Source-Projekt.