Die Entwicklung von damals bis heute

Vom Zend Framework zu Laminas
Keine Kommentare

Das Zend Framework hat seit seinem ersten Erscheinen im Jahr 2006 viele Höhen, Tiefen und Umwälzungen erlebt. Nach der Ankündigung im Jahr 2018, dass Rogue Wave Software, die Mutterfirma von Zend Technologies, in Zukunft die Weiterentwicklung nicht mehr alleine fortführen werde, herrschte lange Unklarheit, wie es weiter gehen sollte. Doch seit dem Frühjahr 2019 ist klar, dass das Zend Framework unter neuem Namen und in einer neuen Organisationsform in die Zukunft geführt wird.

In diesem Jahr wird die Programmiersprache PHP bereits 25 Jahre alt und ungefähr die Hälfte ihres Lebenszyklus wurde PHP vom Zend Framework begleitet. Bevor wir uns anschauen wollen, wie es mit dem Zend Framework in der Zukunft weiter gehen soll, müssen wir erst einmal einen Blick in die Vergangenheit wagen.

Zend Framework: Die Vergangenheit

Nachdem PHP bereits 10 Jahre auf dem Buckel hatte, sind in den Jahren 2005 und 2006 viele neue PHP Frameworks entstanden, die auch heute noch eine hohe Verbreitung haben. Neben Symfony und CakePHP war dies vor allem das Zend Framework, dass im Frühjahr 2006 das Licht der Welt als erste Alphaversion 0.0.1 erblickte. Ich war persönlich ein Spätstarter und habe erst mit dem Release 0.0.2 meinen persönlichen Einstieg ins Zend Framework gefunden. Damals war ich auf der Suche, mein eigenes handgestricktes PHP Framework durch einen nachhaltigere Variante auszutauschen. Ungefähr ein Jahr später erschien dann mit dem Release 1.0.0 die erste Produktivversion: das ZF1.

Mir gefiel der Ansatz des Frameworks auf Anhieb. Anders als viele andere PHP Frameworks der damaligen Zeit, forderte das Zend Framework den Nutzer schon immer zum Mitdenken auf – im guten wie im schlechten Sinne. Als Entwickler wurde ich nicht in ein enges Korsett gezwängt, das mir alles vorschreiben wollte. Der Preis dafür war jedoch schon immer, dass die Einstiegshürde gerade für Einsteiger recht hoch war. Viele Probleme konnten auf verschiedenen Wegen gelöst werden, auch wenn es immer gewisse Empfehlungen gab. Den Namen »Zend Framework« fand ich auch schon immer etwas unspezifisch. »Zend Components« wäre treffender gewesen, da es mehr eine Komponentensammlung mit MVC Komponenten war als ein reines MVC Framework. So manches in seiner Frühzeit eher starres PHP Framework hat diesen Ansatz im Laufe der Jahre auch zumindest teilweise übernommen.

International PHP Conference

PHP in 2020: Fully Loaded

by Arne Blankerts (thePHP.cc)

PSR-14: A Major PHP Event

by Larry Garfield (Platform.sh)

Leaving a Legacy

by (PHPUnit, open source contributor)


Das ZF1 bot über 60 Komponenten an und wurde bis in den September 2016 und damit fast 10 Jahre lang durch neue Releases versorgt. Selbst nach dem Erscheinen des ZF2 wurde der Support 4 statt der geplanten 2 Jahre lang fortgeführt. Dies hat vor allem den Grund, dass das ZF1 auch heute noch im produktiven Umfeld eingesetzt wird. Warum das so ist, dazu kommen wir gleich. Immerhin konnte das ZF1 im Jahr 2010 zu den am häufigsten eingesetzten PHP Frameworks gezählt werden. Verschiedene Komponenten wurden unter anderem auch in anderen Open Source Projekten wie Shopware und Magento eingesetzt.

Die Probleme begannen mit dem ZF2, das nach einigem Hin und Her im September 2012 veröffentlicht wurde. Die meisten ZF1 Komponenten wurden übernommen und es kamen einige neue dazu. Besonders die vollkommen neu gestaltete MVC Komponente, sowie der Service Manager und der Event Manager stachen als Neuerung heraus. Die Entwickler haben aus einigen Fehler der Vergangenheit gelernt und z.B. die Dekorierer bei der Form-Komponente ersatzlos gestrichen sowie den Support für das in die Jahre gekommene Dojo Toolkit eingestampft, um nur zwei Punkte zu nennen. Das ZF2 war ein Meilenstein und in vielen Belangen verbessert im Vergleich zum Vorgänger. Dennoch hat es sehr viel an seiner Popularität verloren.

Dies hatte im Wesentlichen zwei Gründe:

  • Zum einen entsprach eine Migration vom ZF1 zum ZF2 de facto einer Neuentwicklung. Es gab keinen einfachen Weg, seine ZF1 Anwendung zu migrieren. Die neue MVC Komponente und der Service Manager und der Event Manager waren Fluch und Segen zugleich. Leider wurde vom ZF Team zu spät erkannt, dass die Nutzer trotzdem gerne bei der Migration unterstützt werden wollen. Es gab keinen Migrationlayer, keine Migrationstools und auch die Dokumentation zur Migration zum ZF2 war eher dürftig. Die angekündigten Strategien für die Migration sind bis heute in der Dokumentation nicht zu finden. Viele begeisterte ZF1-Entwickler fühlten sich alleine gelassen. Die einen warteten also erst mal ab, die anderen waren wechselwillig.
  • Symfony-Entwickler hatten zur selben Zeit auch einen Major-Release-Wechsel von Symfony 1 auf Symfony 2 vor sich. Auch hier war eine einfache Migration nicht so ohne Weiteres möglich und erforderte viel Handarbeit. Symfony 2 erschien jedoch vor dem ZF2 und das Symfony Team nahm die Migration nicht auf die leichte Schulter, sondern bot ihren Nutzern viel bessere Unterstützung an. Zudem erschien mit Laravel im Jahr 2011 ein neues PHP Framework auf den Markt.

Die Folge war, dass viele ZF1-Projekte zu Symfony 2 oder zu Laravel migriert wurden. Da die Migration vom ZF1 zum ZF2 sowieso einer Neuentwicklung ähnelte, war dies auch nicht verwunderlich. Andere ZF1-Projekte haben die Migration zum ZF2 nur zögerlich angenommen oder bis heute aufgeschoben. Am Ende hat das Zend Framework somit seinen Platz an der Sonne abgegeben müssen und musste sich hinter Symfony und Laravel einreihen.

Zend Framework 3 und Zend/Expressive

Heute sieht es so aus, dass das ZF3 das aktuellste Major Release ist und mittlerweile auch bereits fast 4 Jahre auf dem Buckel hat. Es erschien im Juni 2016 in Version 3.0.0. Seitdem gab es kein neues Release des Frameworks mehr, da es den Weg einer Komponentensammlung konsequent zu Ende gegangen ist. Jeder ZF-Komponente verfügt mittlerweile über ein eigenes Repository und einen eigene Release Zyklus. Das 3.0.0 Package enthält im Wesentlichen nur eine composer.json Datei mit Verweisen auf die konkreten Komponenten.

Eine weitere sehr wichtige Neuerung ist, dass zusätzlich zu der bewährten MVC Komponente nun mit Zend\Expressive ein leichtgewichtiges Microframework dazu gekommen ist. Es basiert auf dem Middleware Konzept und ist deutlich schlanker und performanter als der große MVC Bruder. Besonders die Middleware Pipeline, die den gesamten Ablauf der Anwendung kontrolliert ist deutlich einfacher zu bändigen als der eventbasierte MVC-Ablauf mit verschiedenen Events und Prioritäten.

Ein großer Vorteil von Zend\Expressive ist die Möglichkeit, eine Legacy Anwendung durch das Middleware Konzept einfach zu integrieren. Das ermöglicht die schrittweise Migration vom ZF2 MVC und vor allem auch vom ZF1 hin zum ZF3. Somit kann man statt eines kompletten Rewrites, seine Legacy-Anwendung schrittweise migrieren. Die Migration vom ZF2 MVC zum ZF3 MVC ist zudem recht einfach zu handhaben, wenn man vorher das Übergangsrelease 2.5 beachtet und darüber die Migration startet. Und auch der Wechsel von MVC zu Middleware ist mit vertretbarem Aufwand zügig machbar.

Das ZF3 und allem voran Zend\Expressive sind ein großer Schritt in die richtige Richtung gewesen und die Fehler beim Wechsel vom ZF1 zum ZF2 wurde nicht erneut wiederholt. Alles in Allem hat die Community sich wieder ein wenig erholt und es konnten durch den modernen und schlanken Middleware-Ansatz auch neue begeisterte Nutzer hinzugewonnen werden.

Unsicherheiten kamen zuerst auf, als Zend Technologies im Jahr 2015 von Rogue Wave Software übernommen wurde. Es war unklar, ob und wie lange der neue Eigner die Weiterentwicklung des Zend Frameworks noch voran treiben würde. Als dann wie eingangs erwähnt der Support für das ZF durch Rogue Wave Software nicht mehr fortgeführt werden sollte und zudem im Januar 2019 auch noch Rogue Wave Software von Perforce übernommen wurde, kam in der Community erneute Unruhe auf. Es war halt nicht mehr absehbar, wie es in Zukunft weiter gehen sollte. Diese Unsicherheit wurde erst gemildert, als dann im April 2019 der Wechsel des gesamten Projekts zur Linux Foundation bekannt gegeben wurde.

Laminas: Die Zukunft

Das Zend Framework wechselt somit unter das Dach der Linux Foundation. Da die Marke „Zend“ natürlich weiterhin einem Unternehmen gehört, musste ein neue Name gefunden werden. Somit bekam das Laminas Projekt seinen Namen und auch eine neue Website wurde veröffentlicht. Der Name ist die Mehrzahl von „Lamina“, was soviel wie „thin layer“ bedeutet. Also kann Laminas als dünner Layer für die Umsetzung anderer Projekte verstanden werden.

Der Umgang des Laminas-Projekts ist klar. Das MVC Framework sowie das Expressive Framework werden enthalten sein. Auch allen anderen Komponenten werden genauso ein neues Zuhause finden, wie die Apigility Komponenten. Alle alten Zend Framework Repositories werden archiviert und mit den neuen Laminas Repositories verknüpft. Somit können diese alten Komponenten auch weiterhin genutzt werden, bis der Wechsel zu Laminas abgeschlossen ist.

Organisatorisch wird es zwei wesentliche Organe geben. Das Technical Steering Committee (TSC) ist für alle technischen Entscheidungen verantwortlich. Es wird sich aus Mitgliedern des Zend Framework Community Review Teams und weiteren Personen zusammen setzen. Im TSC werden Entscheidungen hinsichtlich neuer Features, Releases oder auch Komponenten getroffen. Verantwortlich für alle geschäftlichen Belange wird das Governing Board sein. Dieses setzt sich aus Vertretern der Mitgliedsunternehmen der Foundation und einigen Mitgliedern des TSC zusammen. Im Governing Board werden Entscheidungen hinsichtlich strategischer Ausrichtung, Marketing und Finanzierung getroffen, also alle nicht technischen Entscheidungen. Alle Firmen, die an dem Laminas Projekt und der Fortführung des Zend Frameworks interessiert sind, können Mitglied werden und somit dann zukünftig die Richtung des Projektes mit gestalten.

Die Vorteile einer Foundation liegen auf der Hand:

  • Durch eine breitere Basis fühlen sich mehr Unternehmen für den Fortschritt des Projektes verantwortlich
  • Fehlentwicklungen wie bei der Migration von ZF1 zu ZF2 können ggf. früher erkannt werden, wenn mehr Unternehmen an dem Projekt beteiligt sind
  • Das Marketing und die weitere Verbreitung des Frameworks obliegt nicht mehr nur einer einzelnen Firma sondern allen Mitgliedsunternehmen
  • Eine höhere Beständigkeit kann erreicht werden, da sich Wechsel in den Beteiligungen bei einem einzelnen Unternehmen nicht mehr so stark auf das Projekt auswirken können
  • Geschäftliche und technische Entscheidungen werden durch die vielen Mitglieder transparenter
  • Die Linux Foundation ist sehr erfahren, kümmert sich um viele Details in Sachen Gemeinnützigkeit sowie Finanzierung und hat ein großes Netzwerk

Der aktuelle Stand

Anfang November 2019 sieht der Stand so aus, dass die organisatorischen Aufgaben zum Start fast abgeschlossen sind. So wurde z. B. die Technical Charta für das TSC bereits fertiggestellt. Auch die technischen Vorbereitungen stehen kurz vor dem Abschluss. Der offizielle Launch war für November 2019 geplant.

Es wurde bereits bei GitHub eine Laminas Organisation für alle Komponenten inkl. der MVC Komponenten eingerichtet. Diese Komponenten werden zukünftig den führenden Namespace Laminas/ tragen. In der neuen Expressive Organisation bei GitHub werden alle bisherigen Zend\Expressive-Komponenten übernommen. Der Namespace für diese Komponenten wird dann in Zukunft Expressive\ lauten. Zu guter Letzt werden alle Apigility Komponenten in der gleichnamigen GitHub Organisation zusammengeführt und der Namespace wechselt von dem eher nichtssagenden ZF/ zu Apigility/. Alle Pakete werden dann in Zukunft auch bei Packagist aufgenommen werden, damit diese einfach per Composer installiert werden können.

Das Migrationstool für die Anpassung der Namensräume in diesen Komponenten ist fertig. Das Tolle an dem Tool ist, dass nicht nur die neuesten Releases umgewandelt werden, sondern auch alle Releases der Vergangenheit für alle Komponenten. Wer also von einem älteren Release bei dieser oder jener Komponente abhängig ist, kann dennoch bald schon auf Laminas wechseln und ist nicht gezwungen, auf die jeweils neueste Version einer Komponente zu migrieren. Zudem können die Nutzer das Tool bereits selber einsetzen.

Fazit

Dieser Wechsel kann der ehemaligen Zend Framework Community einen neuen Schwung geben. Jedes Unternehmen, das bisher mit dem Zend Framework gearbeitet hat, kann sich nun viel besser beteiligen! Durch den Wechsel der Zugehörigkeit von Zend Technologies zu einer Foundation kann eine finanzielle Unterstützung für viele Unternehmen und Entwickler sinnvoll sein. Und auch eine technische Unterstützung durch direktes Mitarbeiten an den Komponenten kann für Firmen und Entwickler nun noch sinnvoller sein.

Die Zeit wird zeigen, wie das Laminas-Projekt in Zukunft angenommen wird.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -