Magazin | Kolumne

ZendColumn: Migrationsprobleme mit ZF2 und Ausblick auf ZF3
Kommentare

Ralf Eggert (r.eggert [ätt] travello.com) ist Geschäftsführer der Travello GmbH mit Sitz in Pinneberg (de.travello.com). Er hat bereits mehrere Projekte auf Basis des Zend Frameworks umgesetzt und ist Autor des Buchs „Das Zend Framework“, das derzeit für das ZF2 grundlegend überarbeitet wird. Ralf veröffentlicht privat auf zendframeworkmagazin.de viel Wissenswertes zum Zend Framework.

Neue Releases

In den letzten beiden Monaten sind wie gewohnt neue Zend-Framework-Releases erschienen. Am 17. April ist das Release 2.1.5 erschienen, welches das vorerst letzte Release im 2.1-Zweig darstellt. Darin wurden fast 100 Bugfixes und Verbesserungen implementiert. Von den Änderungen sind unter anderem ZendPermissionsAcl, ZendDb, ZendFilter, ZendConsole und ZendNavigation betroffen, um nur einige zu nennen. Zudem wurde die Dokumentation in vielen Bereichen verbessert und ausgebaut. Die vollständige Liste entnehmen Sie bitte dem Changelog.

Nach insgesamt drei Release Candidates ist am 15. Mai das neue Release 2.2.0 erschienen. Dieses neue Minor-Release legte sein Hauptaugenmerk auf Benutzbarkeit und Konsistenz. So wurden weitere Servicemanager eingerichtet, unter anderem für Hydratoren, Input Filters, Logs, Datenbankverbindungen, Cache-Objekte, Translatoren und Formularelemente. Sie wurden überwiegend mithilfe von neuen abstrakten Fabriken umgesetzt, die zum Teil automatisch registriert sind und zum Teil manuell aktiviert werden müssen. Außerdem bietet ZendDb nun eine Unterstützung für die DDL (Data Definition Language) zum Anlegen, Ändern und Löschen von Datenbanktabellen. Des Weiteren hat ZFTool hat ein neues Diagnosetool spendiert bekommen, um technische Voraussetzungen wie PHP-Version, PHP-Erweiterungen, ZF2-Module usw. zu überprüfen. Außerdem wurde ein neuer Aggregate-Hydrator bereitgestellt und einige Abhängigkeiten in verschiedenen Komponenten wurden aufgelöst. Eine Übersicht mit allen 150 Bugfixes, Änderungen und Verbesserungen finden Sie im Changelog.

Dauerthema Migration vom ZF1 zum ZF2

Auch fast ein Jahr nach dem Erscheinen vom Zend Framework 2 wurden viele ZF1-Projekte noch nicht zum ZF2 migriert. Die Gründe hierfür sind vielfältig. Mal fehlt das technische Know-how im ZF2, mal wird der betriebswirtschaftliche Sinn der Migration infrage gestellt, mal fehlt es neben dem Tagesgeschäft einfach an der Zeit. Es gibt kein Tool, mit dem man auf Knopfdruck seine Anwendung migrieren kann, und auch der einst versprochene Migration-Layer wurde bisher nicht veröffentlicht (und wird wohl auch nicht mehr kommen). Zu allem Überfluss ist der Migration-Guide in der Dokumentation noch sehr lückenhaft.

Dieser Frust brach auch in der letzten Release-Note zum ZF 2.2.0 heraus. Dort beklagen sich mehrere Nutzer, dass das ZF2 immer komplizierter werden würde und eine Migration vom ZF1 nahezu unmöglich erscheint. Es werden einige lieb gewonnene Komponenten vermisst und so manche Änderung infrage gestellt. Kurzum, viele ZF1-Entwickler fühlen sich bei der Migration zum ZF2 immer noch im Stich gelassen.

Auf der vergangenen PHP-Konferenz IPC Spring 2013 in Berlin habe ich einen Vortrag zum Thema „Migration vom ZF1 zum ZF2 von einfach bis fies“ gehalten. Leider war die Zeit mit 45 Minuten zu kurz für das umfangreiche Thema, sodass ich viele Punkte nur kurz anreißen konnte und eine offene Fragerunde leider aus Zeitmangel entfallen musste. Dennoch war das Feedback im Anschluss überwiegend positiv. In dem Vortrag zeige ich auf, wie man in einem ZF1-Projekt zuerst parallel die ZF2 SkeletonApplication installiert und danach schrittweise die Startseite und ein erstes Modul migriert. Dabei kommt ein ZF1 CompatibilityListener zum Einsatz, der fehlende Konfigurationen bei der Nutzung von ZF1-Komponenten in der ZF2-Anwendung bereitstellt. Die Folien können heruntergeladen werden, sodass jeder die Möglichkeit hat, das Ganze auch im Nachhinein nachvollziehen zu können.

Planungen für ZF3

Vor einiger Zeit hatte die ZF-Community entschieden, dass neue Major-Releases in einem festen Zyklus von 18 bis 24 Monaten erscheinen sollen. Nach diesem Zyklus wird das ZF3 somit bereits im September 2014 herauskommen müssen. Der Support für das ZF1 von der Firma Zend Technologies wird dann wahrscheinlich eingestellt und das ZF2 wird danach noch für mindestens 18 bis 24 Monate fortgeführt.

Um diesen Zyklus einzuhalten, wurde vor wenigen Tagen in der Contributors-Mailingliste die Diskussion zum Zend Framework 3 gestartet. Nach kurzer Zeit wurde die Diskussion dann ausgelagert, um die Übersichtlichkeit der einzelnen Vorschläge zu wahren. Die Bandbreite der Vorschläge geht weit auseinander (Liste ist unsortiert):

  • PHP 5.4 soll als Minimum vorausgesetzt werden, um Features wie Traits oder Callable Type Hints verwenden zu können.
  • Veraltete Methoden und Klassen sollen entfernt werden, die im ZF2 nur zur Wahrung der Rückwärtskompatibilität vorhanden waren.
  • Der Servicemanager soll verschiedene Verbesserungen und Vereinheitlichungen bekommen.
  • Namen von Klassen und Methoden sollen konsistenter werden. Die Implementierungen ähnlicher Features sollen normalisiert werden.
  • Einführung eines leichtgewichtigeren Eventmanagers als Ergänzung zum normalen Eventmanager.
  • Hydratoren sollen einen eigenen Namensraum bekommen.
  • Weitere Vorschläge zur Verbesserung von Komponenten wie ZendJson, ZendLog, ZendSession, ZendMail, ZendMime, ZendNavigation usw.
  • Verschiedene Vorschläge zu Verbesserungen im Routing und im Laden von Modulen.
  • Vereinheitlichung von underscored_separated– und camelCase-Parametern in allen Komponenten.
  • Vorschläge zum Entfernen einiger wenig genutzter (ZendBarcode, ZendDom, ZendDebug) oder durch neue PHP-5.4-Features obsolete Komponenten (ZendJson).
  • Zudem gibt es diverse Vorschläge zur Verbesserung der Performance.

Ein Vorschlag, den ich selbst gemacht habe, kam bisher nicht so gut an, was vielleicht auch an der etwas missverständlichen Formulierung liegen mag. Aufgrund der Migrationsprobleme vom ZF1 zum ZF2 empfinde ich es als sehr wichtig, dass ZF2-Module mit möglichst geringem Aufwand auch in einer ZF3-Applikation laufen sollen. Aufgrund möglicher BC-Breaks ist dies natürlich nicht komplett ohne Anpassungen möglich. Aber ich denke, dass Anwendern die Arbeit bei der Migration zum ZF3 so einfach wie möglich gemacht werden soll. Hierfür sollte schon zum Release ein möglichst vollständiger Migration-Guide bereitstehen, um die Akzeptanz des ZF3 nicht unnötig zu erschweren.

Die nächsten Monate dürften jedoch durchaus interessant werden und wir dürfen gespannt warten, in welche Richtung sich das Zend Framework 3 entwickeln wird.

Wo trifft sich die Zend-Framework-Community?

Auf der IPC Spring 2013 bin ich mehrmals gefragt worden, wo sich eigentlich die deutschsprachige Zend-Framework-Community zum Gedankenaustausch trifft. Ich denke, für den Onlineaustausch gibt es bereits einige gute Quellen:

  • das deutschsprachige Zend-Framework-Forum
  • die deutschsprachige Zend-Framework-Google+-Community
  • das englischsprachige Zend-Framework-Forum
  • und natürlich Stack Overflow

Dennoch fehlt noch ein Event (Barcamp, Konferenz), auf dem sich deutschsprachige Zend-Framework-Entwickler einmal offline austauschen können. Wer daran Interesse hat, kann sich gerne einmal bei mir melden [15].

Featurebild: line of Gerek-style columns von Shutterstock / Urheberrecht: Marcio Jose Bastos Silva

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -