Zend-Kolumne: Rückblick auf die Entstehung von Zend Framework 2

Zend Framework 2: Komponenten, wichtige Design-Entscheidungen und Tipps zum Einstieg
Kommentare

Die neuen Releases und die neue Dokumentation haben uns in den letzten Wochen in Atem gehalten. Dazu bringt das neue Zend Framework 2 ein neues Tutorial. Mittlerweile ist das ZF2 endlich in einem stabilen Release erschienen sein. Ralf Eggert liefert eine Retrospektive des Entwicklungsfortschritts des beliebten PHP-Frameworks für Enterprise-Applikationen.

PHP Magazin

Die Kolumne „Zend_Column“ von Ralf Eggert ist erstmalig erschienen im PHP Magazin 6.2012

Neues Release

Seit der letzten Ausgabe sind eine Fülle neuer Releases erschienen. Wir befinden uns mittlerweile im Release Candidate Cycle [Anm. d. Red.: die Finalversion ist nach Redaktionsschluss verfügbar geworden], sodass wöchentlich neue RCs veröffentlicht werden. Bei Redaktionsschluss waren bereits die RC1 [1], RC2 [2] und RC3 [3] erschienen, wobei RC3 am 9. August 2012 das Licht der Welt erblickt hat. In diesen Release Candidates werden keine neuen Features mehr implementiert, sondern nur noch Bugs gefixt. Zudem wird intensiv an der Dokumentation gearbeitet. Bereits Anfang Juli war die letzte Betaversion für das 2.0.0 Release erschienen [4]. Das war die letzte Chance, um noch neue Features in das 2.0 Release zu bekommen. Hauptaugenmerk lag dabei auf folgenden Komponenten:

  • ZendEscaper stellt kontextspezifische Mechanismen zum Escapen von HTML, HTML-Attributen, JavaScript, CSS und URLs bereit. Die Komponente wurde auch in den View Layer integriert.
  • Neue ZendI18n-Komponente ersetzt die alten I18n/L10n-Komponenten aus dem ZF1 und setzt dabei stark auf die PHP-Extension ext/intl.
  • Formulare, Input-Filter und Hydrators können per Annotations in den Models erstellt werden.
  • Zudem wurden über 400 Pull Requests integriert.

Eine ausführliche Übersicht bietet die offizielle Release Note zur Beta 5 [5]. Doch nicht nur das ZF2 hat neue Releases bekommen. Auch beim ZF1 geht es weiter. Zum einen ist das Release 1.11.12 erschienen [6]. Zum anderen sind zwei Release Candidates für das ZF 1.12 erschienen: RC1 [7] und RC2 [8]. Der geplante dritte RC lässt momentan noch auf sich warten, was wohl den Arbeiten am ZF2 geschuldet ist. Wir sehen aber, dass das ZF1 noch weiter entwickelt wird, auch wenn dort das Tempo langsam rausgenommen wird.

Dokumentation

Derzeit wird mit Hochdruck an der Dokumentation für das ZF2 gearbeitet [9]. Wichtigste Änderung ist der Wechsel von docBook zu reStructuredText, doch das betrifft nur diejenigen, die an der Dokumentation mitarbeiten oder sie übersetzen möchten. Die Dokumentation ist grob in fünf Bereiche aufgeteilt. Die Einführung macht den Anfang und bietet einen Überblick sowie Informationen zur Installation. Der zweite Teil ersetzt den alten Quick Start Guide. Als Basis diente das Zend-Framework-2-Tutorial von Rob Allen, das zukünftig nicht mehr weitergeführt wird. Das bündelt auf der einen Seite zwar Ressourcen, ist auf der anderen Seite aber schade, da es somit bisher nur noch ein einziges Tutorial für Einsteiger gibt. Aber in den nächsten Monaten werden sicherlich weitere folgen. Der dritte Teil fasst tiefergehende Beispiele zum Erlernen des ZF2 zusammen. Bisher wird nur das Thema Dependency Injection behandelt, zukünftig sollen aber weitere Themen folgen. Der vierte Teil ist zugleich der Hauptteil der neuen Dokumentation. Hier werden alle Komponenten des Frameworks als Referenz dokumentiert. Bei dem neuen Referenzhandbuch wird vor allem auf einen einheitlichen Aufbau der einzelnen Kapitel geachtet, die immer alle Optionen und vielfältige Beispiele enthalten sollen. Zum Einstieg empfehle ich vor allem die Lektüre zu den Komponenten ZendEventManager, ZendLoader, ZendModuleManager, ZendMvc, ZendServiceManager und ZendView, da diese die Basis einer jeden Zend-Framework-2-Applikation ausmachen. Der fünfte und letzte Teil umfasst die Servicekomponenten, die nicht mehr Teil des Core sind. Hier fand sich zum Redaktionsschluss nur die Komponente ZendServiceLiveDocx. Weitere werden sicher bald folgen.

Das Interessante an der neuen Dokumentation ist die direkte Verknüpfung mit GitHub, die ein schnelles Bearbeiten der einzelnen Seiten ermöglichen. Wer also die Dokumentation verbessern möchte, ist herzlich dazu eingeladen. Es empfiehlt sich aber dennoch, sich in der Contributors- und Doc-Mailingliste zu melden [10] (Achtung: die Archive liegen mittlerweile bei Nabble [11]).

Tutorial

Das angesprochene Tutorial [12] führt in das Zend Framework 2 ein. Es beginnt mit einigen Voraussetzungen und dem Aufbau der Anwendung, einer Verwaltung für Musikalben. Dann wird die Skeleton Application [13] installiert, ein Virtual Host eingerichtet und die erfolgreiche Installation getestet. Als Nächstes wird ein neues Modul eingerichtet und konfiguriert. Dieses Kapitel erfordert vom Umsteiger von ZF1 eine erhöhte Aufmerksamkeit, da die Konfiguration zu Beginn im Vergleich zum ZF1 etwas umständlich wirken kann. Als Nächstes wird das Routing thematisiert und ein Controller angelegt.

Nun sind die Datenbank und das Model an der Reihe. Es wird MySQL verwendet, aber das Beispiel lässt sich sicher für andere Datenbanksysteme anpassen, wenn diese durch ZendDb unterstützt werden. Für das Model wird eine Entitätsklasse sowie Tabellenklasse eingerichtet, die das neue TableGateway verwendet. Anders als im ZF1-Schnellstart wird kein Daten-Mapper verwendet. Zudem müssen der ServiceManager und das Autoloading für das Model und die Datenbank konfiguriert werden. Am Ende dieses Kapitels werden die Aktionsmethode im Controller sowie das View-Skript zum Listen der Alben angelegt.

Ein weiteres kurzes Kapitel bespricht vor allem die Übersetzungen der Texte, wobei hier Poedit zum Einsatz kommt. Zum Abschluss werden Formulare erstellt, ausgegeben und verarbeitet. Die erste kleine Anwendung ist fertig. Dieses Tutorial soll in den nächsten Wochen noch erweitert werden, um weitere Features des neuen ZF2 zu demonstrieren. Im Gespräch sind Caching, Navigation, Paginierung etc. Wir dürfen gespannt sein.

Und dann war da noch .

Wer die neue Dokumentation aufmerksam verfolgt hat, wird sicher einige alte Bekannte aus dem ZF1 vermissen. Neben den bereits angesprochenen, vielfältigen Servicekomponenten sind das vor allem folgende Komponenten:

  • ZendAmf

  • ZendDojo
  • ZendOpenId
  • ZendOAuth
  • ZendPdf
  • ZendQueue
  • ZendRest
  • ZendSearch
  • ZendTool

Die Gründe für das Fehlen dieser Komponenten sind vielfältig. Einige werden nicht mehr gebraucht, für andere gab es bisher keinen Entwickler, der sich der Komponente annehmen wollte. Und wieder andere sollen erst mit dem ZF 2.1 überarbeitet werden. Gerade die alten Komponenten Zend_Pdf und Zend_Search_Lucene galten zu Beginn des ZF1 als Killerfeatures, konnten aber in der Praxis ihre Macken hinsichtlich Performance oder Funktionalität kaum verbergen. Ob sie jemals noch für das ZF2 portiert werden, bleibt fraglich. Dies betrifft vor allem einige weniger verwendete Zend_Service- und Zend_Gdata-Komponenten.

Ralf Eggert (r.eggert@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 Buches „Das Zend Framework“, das derzeit für das ZF2 grundlegend überarbeitet wird. Ralf veröffentlicht privat auf http://www.zendframeworkmagazin.de viel Wissenswertes zum Zend Framework.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -