Zend Framework 3 – Status? (Teil 2)

 

Nachdem ich euch im ersten Teil dieses Blogartikels die ursprüngliche Roadmap vorgestellt und einen Überblick zum ersten großen Statusupdate im Herbst 2015 gegeben habe, möchte ich nun im zweiten Teil darauf eingehen, was weiter passiert ist, welche 3.0-Releases seitdem schon veröffentlich wurden, ob die bisherigen Ziele erreicht wurden und was der aktuelle Stand ist.

Releases

Mit dem Update am 14.01.2016 [1] kam die Verkündung der ersten drei 3.0 Releases! Zuerst kam der ServiceManager heraus, der eine Performancesteigerung bis zum 4-fachen erreicht hat. Anschließend kam auch der EventManager mit einer bis zu 4-fachen Steigerung heraus. Und schließlich zend-code 3.0.0, das die Benutzung von PHP 5.5, PHP 5.6 und PHP 7 ermöglichte. Vorerst konnten diese Versionen noch nicht in bestehenden ZF2-Anwendungen benutzt werden, jedoch entweder alleinstehend oder basierend auf Projekten die Expressive nutzen.

Schlag auf Schlag folgte dann nach acht Release Candidates das erste Stable Release von Expressive, mit dem Update am 28.01.2016 [2]. Dies wird von der Zend Framework 3 Initiative als wahrer Meilenstein betrachtet.

In den nächsten Wochen folgte die 3.0-Version von zend-stdlib [3]. Außerdem konzentrierte sich die Entwicklung darauf, eine Vorwärtskompatibilität der Koponenten für die schon herausgebrachten Releases zu erreichen. Dies wurde in der ersten Märzwoche [4] abgeschlossen und war ein weiterer Meilenstein. Außerdem wurde das Routing zu PSR-7 Middleware im MVC-Layer ermöglicht und es gab nun Migrationsanleitungen [5] zum Migrieren von Version 2.x zu Version 2.7 und zum Migrieren zur Version 3.0.

Zend MVC Fortschritt

Ein Ziel für zend-mvc war das Reduzieren von Abhängigkeiten. Viel Funktionalität im zend-mvc betraf nicht nur dessen Ausführung, sondern außerdem der Integration der Komponenten. (Üblicherweise wurde das durch das Bereitstellen und Verknüpfen von Factories oder Event Listenern für die Komponenten erreicht.) Hierfür wurde der zend-component-installer als Composer Plugin entwickelt [6]. Außerdem wurde durch eine eigene Router Komponente, die alle Routing Einsatzmöglichkeiten bereitstellt, eine enorme Menge Code im MVC eingespart. Es wurde auch eine eigene MVC Konsole Komponente entwickelt, zum Austausch zwischen Konsole, MVC, Router und View, wodurch die entsprechenden Funktionalitäten aus diesen Komponenten herausgenommen wurden. Und es wurden einige Controller Plugins in eigenständige Komponenten ausgelagert [7], sowie i18n in eine eigene Komponente und viele verschiedene Factories, Services und Event Listener in ihre jeweiligen Komponenten überführt [8]. Somit konnte nicht nur ganz viel weiterer Code eingespart werden, sondern auch sehr viele Abhängigkeiten aufgelöst und auf ein Minimum von Kernabhängigkeiten (EventManager, Http, ModuleManager, Router, ServiceManager, Standard Library und View) eingegrenzt werden. Am Ende dieses Zykluses hatte sich die Anzahl des Sourcecodes für MVC auf 25% des Ursprünglichen reduziert!
Die JSON-Komponente wurde komplett refaktorisiert und in drei Komponenten aufgeteilt, wodurch die Kernkomponente auf eine 3.0-Version gehoben werden konnte.

Stand heute

Der Stand heute ist nach dem letzten Update Anfang Juni [9] Folgender:
Zuerst einmal für alle sehr interessant ist die Fertigstellung der Dokumentation gewesen. Alle Komponenten haben nun auch eine jeweilige Dokumentation erhalten und die fertige Liste mit allen Links gibt es unter https://zendframework.github.io/ [10].
Die zweite wichtige Nachricht ist, dass zend-mvc nun auch eine 3.0-Version erhalten hat, ebenso gleich darauf folgend zend-test. Auch das Skeleton hat eine komplette Überarbeitung erhalten. Es wurden tausende Zeilen Code gelöscht, Abhängigkeiten aufgelöst und Funktionalitäten ausgelagert. Bei der Installation über den eigenen, neuen Skeleton Installer, als Composer Plugin, kann man nun wählen, ob man man ein minimales Skeleton oder noch weitere Komponenten dazu haben möchte. Diese kann man optional dazuwählen. Außerdem werden Vagrant umd Docker unterstützt.

Die folgenden Punkte sind jetzt letztlich noch offen, bis es final heißt ‘Zend Framework 3 complete!

  • Da der Support für PHP 5.5 Ende Juni ausläuft, werden alle Komponenten noch auf eine minimale PHP 5.6 Version gehoben.
  • Da das Skeleton jetzt fertig ist, werden die Tutorials noch in ein neues Repository migriert und auf das neue Skeleton angepasst.
  • Schlussendlich muss dann noch entschieden werden, wie das zendframework Package für die Version 3 aussehen wird.

Fazit

Wie man also sieht, wurde in der vergangenen Zeit mit Hochdruck daran gearbeitet das Zend Framework 3 auf die Strecke zu bringen und wir sind mittlerweile nur noch einen Steinwurf von der Fertigstellung entfernt! Die großen Ziele wurden aktuell schon erreicht, wie die Performance-Steigerung, die Aufteilung der Komponenten in ihre jeweiligen Repositories, das Überarbeiten des MVC-Konstrukts, das Auflösen vieler Abhängigkeiten, Optimierungen für die aktuellen PHP-Versionen und vor allem auch die Auslösung von Expressive als Microframework für PSR-7 Middleware. Man darf gespannt sein, wie sich Letzteres, aber auch das Zend Framework 3 an sich, schlagen wird.

 

Links

[1] http://framework.zend.com/blog/2016-01-14-zf3-biweekly-update.html
[2] http://framework.zend.com/blog/2016-01-28-zf3-biweekly-update.html
[3] http://framework.zend.com/blog/2016-02-12-zf3-biweekly-update.html
[4] http://framework.zend.com/blog/2016-03-24-zf3-update.html
[5] http://zendframework.github.io/zend-mvc/migration/
[6] https://zendframework.github.io/zend-component-installer/
[7]
https://github.com/zendframework/maintainers/wiki/zend-mvc-v3-refactor:-reduce-components#split-out-some-controller-plugins

[8] http://framework.zend.com/blog/2016-04-21-zf3-update.html
[9] http://framework.zend.com/blog/2016-06-02-zf3-update.html
[10] https://zendframework.github.io/

 

Für neue Blogupdates anmelden:


2 Gedanken zu “Zend Framework 3 – Status? (Teil 2)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.