Home > Archiv > Eine neue Version des Zend Frameworks ist draussen? Eieiei...

Eine neue Version des Zend Frameworks ist draussen? Eieiei...

Geschrieben von   admin on    Januar 25, 2010

Es soll ja Leute geben, die kurze Releasezyklen bevorzugen. Zumindest beim Zend Framework - einem der zahlreichen PHP-Frameworks, dem wahrscheinlich wegen des Namens Zend eine besondere Bedeutung beigemessen wird - kommen mir alleine beim Gedanken daran graue Haare.

Seit Version 1.5.2 setze ich das ZF bei verschiedenen Projekten ein. Durch die Bank Projekte, deren Ursprung älteren Datums ist, und wo nur einzelne Komponenten des ZF verwendet werden. Trotzdem, also obwohl ich zunächst längere Zeit keine nagelneue Webanwendung damit von Grund auf entwickelt habe, etwa mit MVC-Grundlage (oder vielleicht gerade deshalb), musste ich zwischen etlichen Releasewechseln feststellen, dass Probleme mit der Abwärtskompatibilität vorhanden waren. Oder dass Bugs etliche Zwischenreleases ohne Fix überlebt haben. Manchmal werden alte Bugs auch einfach durch neue ersetzt. Im Prinzip kommt man sich oft so vor, als ob die Windows-DLL-Hölle eine Wiederauferstehung in anderem Gewand erlebt.

Wen man sich das Dashboard des ZF Issue Trackers ansieht, dann wird einem ganz blümerant:

  • Mittlerweile dauert es über 330 Tage (!) bis ein Issue durchschnittlich gelöst, oder meinetwegen auch als unbegründet eingestuft wurde.
  • Während im März 2008 sich gemeldete und gelöste Issues noch in etwa die Waage hielten, ist das Verhältnis nun 6400 gemeldete zu 4979 gelöste Issues. Das ist in meinen Augen das Gegenteil von gut!

Überhaupt leidet die Entwicklung des ZF meines Erachtens an einigen grundlegend falsch gesetzten Prioritäten:

  • Jeder kleine Bockmist wird durch eine Klasse gekapselt. Manche Dinge sind zudem auch nach kurzer Zeit in der Funktionalität durch eine Entsprechung in PHP oder einer dessen Extensions obsolet geworden.
  • Wenn man eine Zend Framework MVC-Anwendung zu debuggen versucht, dann dauert es grotesk lange bis die Codeausführung sich nach den entsprechenden ZF-Teilen fortsetzt. Sehr unperformant ist auch Zend_Db. Wer also auf Zend Frameworks MVC und Zend_DB setzt, wird ohne Opcode Cache garantiert nicht glücklich. Aber auch mit Opcode Cache wird mehr Performance geschluckt als angemessen wäre!
  • Featuritits geht vor Bugbeseitigung.
  • Es wird nicht genügend auf Abwärtskompatibilität geachtet.
  • Die Dokumentation hält nicht Schritt. Geschweige denn irgendwelche Tutorials oder gar Bücher: Ich habe mir im Laufe der Zeit zwei Bücher über das ZF zugelegt, die zum Erscheinungszeitpunkt in wichtigen Aspekten bereits veraltet waren.

Ich war mir unterm Strich lange Zeit nicht wirklich sicher, ob der Einsatz des ZF mir Zeit gespart hat. Dazu gab es einfach zuviel Ärger damit. Mittlerweile arbeite ich an einer MVC-Anwendung auf Basis des Zend Frameworks. Aufgrund der umständlichen Dokumentation ist es nur ein teilweises Vergnügen. Aber so langsam wird's besser Cool.

Nachtrag:Zend Framework 1.10.0 wurde veröffentlicht

Manchmal macht es wirklich keinen Spaß, wenn man Recht behält: Mit der gestern (27. Januar 2010) veröffentlichen Version 1.10.0 des Zend Framework gibt es erneut Probleme mit der Abwärtskompatibilität. Z.B. mit der statischen Methode Zend_Validate::is(). Wenn man sich die Änderungen im Quellcode anguckt, dann wird klar, dass nun Namespaces irgendeine (andere) Rolle (als zuvor) spielen, obwohl damit nicht der Namespace-Mechanismus von PHP 5.3.x gemeint sein kann - die Namen alle ZF-Klassen beginnen nach wie vor mit Zend_, auch die Dokumentation besagt, dass PHPs 5.3-Namespaces noch nicht verwendet werden. Selbst mit der aktuellen PHP-Version 5.3.1 funktioniert es aber nicht richtig. Ersetzt man den fraglichen Abschnitt  durch den der ZF-Vorgängerversion 1.9.7, dann treten die Probleme folgerichtig nicht auf. Konsequenz? ZF 1.10.0 lasse ich erst einmal aus, verwende weiter das erst vor kurzem als Sicherheitspatch erschienene ZF 1.9.7 und warte darauf, ob man sich vielleicht bei ZF 1.10.1 (sofern's das geben wird) um diese und andere Macken gekümmert haben wird. Immerhin soll sich die Dokumentation verbessert haben: englische Version bzw. deutsche Version (an manchen Stellen etwas holprig). Und - nicht auf Anhieb zu finden - nun endlich eine etwas umfangreichere und hoffentlich halbwegs fehlerfreie und aktuelle Lernanleitung: Learning Zend Framework bzw. Einstieg ins Zend Framework (ebenfalls holprig übersetzt).

Teilkorrektur:

Mittlerweile (07.02.2010) konnte festgestellt werden, dass das im letzten Abschnitt angesprochene Problem nur dann auftritt, wenn man dem Zend Framework Performance Guide, Abschnitt "Strip require_once calls with find and sed" folgt. Ich muss zugeben, dass ich darauf auch alleine hätte kommen können. Denn es nicht das erste Mal, dass dieser Bestandteil der ZF-Dokumentation zu Fehlern führt. Eigentlich müsste man es aber anders formulieren. Es vielmehr so, dass innerhalb der ZF-Entwicklergemeinde oft ignoriert wird, dass diese Anweisungen immer wieder zu Problemen führen, wenn bei Änderungen im ZF dieser Aspekt nicht berücksichtigt wird. Es handelt sich also wieder mal um einen Fall, wo offizielle Dokumentation und Entwicklungsstand nicht stimmig sind.

Nachtrag zur Teilkorrektur

Laut Issue Tracker ist der Bug beseitigt, wird also im ZF 1.10.2 nicht mehr enthalten sein.

Kommentare

Kommentar schreiben



(Ihre E-Mail-Adresse wird nicht angezeigt.)


Ungültiger Sicherheitscode

Bitte klicken Sie das Bild an, um einen neuen Sicherheitscode zu laden.