Das Barcamp in München hat ordentlich geschlaucht. So viele kurze Sessions aus unterschiedlichen Themengebieten sorgten am Abend vom Samstag und Sonntag für ein unangenehmes Summen im Kopf, aber eines, das man gerne entgegennimmt. Selten ist die Informationsdichte so hoch und selten hatte ich die Gelegenheit mich an einem Wochenende so tief in unterschiedliche Fachgebiete einweisen zu lassen.
Eines dieser Themen, das schon seit langem bei mir im Kopf ansiedeln möchte, ist das PHP Framework von Zend. Gerne auch Zend Framework genannt. Und wie sich das Thema nach diesem Wochenende in meinen Kopf eingebrannt hat. Nach einer knüppelharten Session zum Symfony Framework, von dem ich meinen Mitschrieb irgendwie nicht mehr so richtig entziffern kann, folgte eine erholsame Session zum Platzhirsch der PHP Frameworks. Stefan Peter Roos, der eigentlich als Musikverleger tätig ist, präsentierte einen kleinen Einstieg in die Technik der Klassensammlung. Und die reicht vollkommen aus, um mit dem Framework vertraut zu werden. Dies ist die Zusammenfassung der Session und der Diskussionen, die darin aufkamen.
Die Session begann mit einer Vorstellungsrunde. Die Anwesenden hatten durch die Bank mit PHP zu tun gehabt, aber bisher kaum mehr als ein bisschen in das Zend Framework geschnuppert. Zuerst wurde deshalb mit den Gegebenheiten der Klassensammlung aufgeräumt. Das Zend Framework (ZF) ist nämlich kaum mit Symfony oder Cake PHP zu vergleichen. Die zuletzt genannten sind Application-Frameworks, die Code-Generatoren mitbringen und ein Konzept, wie mit ihnen komplette Softwarelösungen umgesetzt werden können. ZF ist anders. Es ist eine Klassensammlung, die nützliche Aufgaben erleichtern kann auf einem MVC (Model-View-Controler) Konzept, das bislang aber gänzlich ohne Model auskommt.
Darüberhinaus bietet ZF (noch) kein Scaffolding zur Code-Erzeugung an. Vielmehr sind die vielen Klassen darin einzelne, gekapselte Funktionalitäten, die auch einzeln in bestehenden Projekten eingesetzt werden können, zumeist ohne, manchmal aber auch mit ein paar wenigen Abhängigkeiten, die zu berücksichtigen sind. Zend liefert eine sehr umfangreiche Dokumentation und ist damit unheimlich schnell zu erlernen. Der Quickstart auf der offiziellen Homepage des Frameworks erlaubt es, sich innerhalb von 30 Minuten mit dem Thema vertraut zu machen und loszulegen. Bei anderen Frameworks ist man nach dieser Zeit noch nicht mal beim Verdauen.
Die neueste Version des ZF, mit der Versionsnummer 1.6 liegt nun seit etwa vier Wochen vor und bringt als Hauptneuheit eine Implementierung des Dojo Toolkits mit. Das Javascriptpaket Dojo wurde im Hauptnamespace des Frameworks integriert, bietet bisher aber wenig Funktionen, vorrangig eine Implementierung der Zend_Dojo_Form API ist neu hinzugekommen. Beide Neuerungen sind in der Diskussion sehr skeptisch betrachtet worden. Die Umsetzung ist noch rudimentär und manche Abhängigkeiten müssten manuell gesetzt werden, um Overhead bei der Verarbeitung auszuschließen.
Mit dem Release 1.6 sei die Geschwindigkeit des Zend Framework noch einmal eingebrochen. Der Hersteller plant für sein 1.7er Release aber einen Schwerpunkt auf die Performance. Generell ist Vorsicht beim Einsatz geboten, da durch die offene Struktur, bei fehlerhafter Anwendung, häufig viel zu viele Klassen beim Autoloading durchsucht würden. Ein erster Schritt, dies zu Umgehen sei es, die Application Path des ZF schon früh im Skript zu setzen, damit der Autoloader auch zügig arbeitet - ansonsten drohen Wartezeiten von bis zu 500 Millisekunden. Zudem sei es sehr empfehlenswert, das Zend Framework in Zusammenhang mit dem APC-Cache System zu betreiben und somit auf vorkompilierten Code zurückzugreifen. Zudem gebe es einen inoffziellen Patch im Wiki des ZF, der die Probleme beim Autoloading reduziere [Leider grade nicht mehr gefunden].
Ein paar Beispiele für gekapselte Funktionalitäten wurden vorgestellt. Die Zend_Config_Ini mit dem man spielend INI-Dateien anlegen und lesen kann, um beispielsweise Konfigurationsdateien für seine Projekte umzusetzen. Die Zend_Feed_RSS API mit der relativ einfach RSS-Feeds erstellt und auch verarbeitet werden können. Oder die Zend_Layout_XX Klassen zur Layout-Generierung. Diese und viele andere Klassen bringen weitreichende Funktionalitäten. Allerdings sind diese alle nur Module, um Implementierungen zu erleichtern. Ein Loginmodul kann mit den Zend_Auth Klassen erstellt werden, ein fertiges Login-Script oder eine Benutzerverwaltung wird man aber nicht im Paket des Zend Framework vorfinden.
Auf ein neues Paket der 1.6er Version wurde zusätzlich hingewiesen. Bisher musste man das Debuggen seiner Scripts mit den Zend_Debug Klassen umsetzen. In der neuesten Version des Frameworks kann aber direkt auf die Firebug-Konsole des Firefox Addons geschrieben werden. Wie man die Zend_Log_Writer_Firebug Klasse verwendet sei ausführlich im Artikel von Christoph Dorn dargelegt. Der Einsatz ist nur zu empfehlen.
Abschließend wurden Materialien und Webadressen genannt, um sich weiter über das Zend Framework zu informieren. Als deutsche Anlaufstelle wurde das ZFForum.de angepriesen. Dessen englisches Pendant, welches unter ZFForms.com erreichbar sein soll, habe ich indes nicht auffinden können. Vielleicht hat jemand die richtige Adresse. Diese wird dann hier nachgetragen. Als Nachschlagewerk eigenet sich auch die Startseite des Zend Framework, auf welcher sich auch Videos und Podcasts zum Thema finden. Besonders empfohlen wurde der Screencasts, welche die Quicktour erläutern.
Zwei Namen seien dabei besonders zu behalten. Zum einen Ralf Eggert, seines Zeichens deutschen Zend Framework Experte, und Matthew Weier O'Phinney. Suche man Beispiel eine definitive Antwort zu einem bestimmten Thema im Zend Framework, so fügt Stefan zur Suchanfrage das Wort "matthew" hinzu. Und ja, darauf kann man schon neidisch sein.
Danke für die Session und die Diskussion. Änderungen an dieser Zusammenfassung können noch folgen. Fehler, Hinweise oder Ergänzungen bitte als Kommentar oder per E-Mail an mich.
Eine Zusammenfassung der Zend Framework Session bietet Hendrik auf seinem Blog.
Aufgenommen: Okt 16, 09:53
Kommentare
Moin Hendrik,
ich denke, das Forum war hier gemeint:
http://www.zfforums.com/
Wenn man dies mit dem deutschen Forum vergleicht, sieht man aber, dass das deutsche deutlich aktiver ist, obwohl es nur in deutscher Sprache verfügbar ist. International sind wohl die Mailinglisten erste Anlaufstelle.
Schade, dass ich es selber nicht nach München geschafft habe. Wäre gerne bei der Session dabei gewesen.
Gruss,
Ralf
zend find ich einfach klasse! nur schade, dass es noch wenig anleitungen auf deutsch gibt!
Kommentar schreiben