Skripte angepasst für Zend Framework 1.8.4
Mittwoch, 22.07.2009Endlich ist es soweit und ich hatte Zeit, die Skripte aus dem Zend Framework Buch auf das neue Zend Framework 1.8.4 anzupassen. Das große Problem bei meinem Buch ist die Tatsache, dass es auf dem Zend Framework 1.7.4 basiert. Das war die bei Drucklegung aktuelle Version. Da so ein Buch zu drucken aber seine Zeit dauert und die Entwicklung des Frameworks stetig voran schreitet, ist ein Buch hinsichtlich der unterstützen Version meistens bei Erscheinen veraltet. Ich habe mir beim Schreiben aber große Mühe gegeben, dass die meisten Infos längerer Zeit gültig sind. Daher auch die regelmäßigen Verweise auf das meistens aktuellere Referenzhandbuch, wenn man spezielle Funktionen im Detail nachschlagen möchte. Wie die Leser wissen, bin ich sogar im Anhang auf einige neue Komponenten im Release 1.8 eingegangen, soweit dies zum damaligen Zeitpunkt überhaupt möglich war.
Doch ich habe die Rechnung ohne das Entwicklerteam gemacht, denn eine Änderung hat bei den meistens Setups vom Zend Framework doofe Notices ausgegeben. Ich denke, ihr wisst schon was ich meine: “Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead“. So laufen die Beispielanwendungen auf der CD-Rom zum Buch bei vielen nicht mehr, wenn man ein Release aus dem 1.8 Zweig einsetzt und das Error-Reporting entsprechend so eingestellt hat, dass diese Notice ausgegeben wird.
Ich habe nun alle Beispielanwendungen auf Lauffähigkeit mit dem aktuellen 1.8.4 Release hin überprüft und ggf. angepasst. Die Änderungen betreffen im Wesentlichen die Beispielanwendungen in folgenden Verzeichnissen:
/kapitel03/schnellstart/
/kapitel13/ajax/
/kapitel19/luigiblog/
/kapitel20/luigiguestbook/
/kurzlinks/
Geändert wurde vor allem der veraltete Aufruf von Zend_Loader::registerAutoload nach Zend_Loader_Autoloader::getInstance(), wobei bei Bedarf auch ein entsprechende Namespace definiert wird. Siehe auch im Manual. Zudem werden bei Bedarf auch die neuen Autoloader Ressourcen zum Laden von Models, Formularen usw. eingesetzt (siehe auch im Manual). Dabei mussten auch einige Dateien verschoben und Klassen umbenannt werden. So heisst eine Modelklasse z.B. nicht mehr Guestbook, sondern App_Model_Guestbook. Die fünf genannten Beispielanwendungen funktionieren somit wieder und auch die Unit-Tests in Kapitel 20 laufen wieder fehlerfrei durch.
Nicht geändert sind die alten Bootstrap-Dateien. Also ich habe Zend_Application nicht für das Bootstrapping eingesetzt. Wichtig war mir erst einmal, dass die Skripte wieder lauffähig werden, wenn ihr eine neuer Version einsetzt. Und nun könnt ihr die Dateien endlich downloaden. Ich hoffe, der Server hält das aus… ;-)
Feedback ist erbeten!


