PHP und das Zend Framework
Wer öfter programmiert, wird früher oder später auf Frameworks zurückgreifen. Frameworks, das sind Sammlungen von häufig genutztem Programmcode, heutzutage für jede ernsthafte Programmiersprache erhältlich und ziemlich mächtig. Sie können einem durchaus 50% der Zeit ersparen, denn viele Dinge braucht man immer wieder, und genau diese Dinge sind mit guten Frameworks abgedeckt. Frameworks bieten einem auch einen gewissen Rahmen, um schönen strukturierten Code zu schreiben, zum Beispiel durch die Ordnerstruktur oder die Art uns Weise, wie das MVC-Pattern umgesetzt wird.
Ist Zend Framework (ZF) das einzige Framework für PHP? Beileibe nicht! Es ist eines von 4 oder 5 großen und verbreiteten Frameworks, existiert seit April 2006 und die Entwicklung wird vom „PHP-Hersteller“ Zend getrieben. Vorher war das wohl bekannteste Framework das PEAR Framework. Andere Frameworks sind beispielsweise die ziemlich neuen Projekte Yii und Flow3, aber auch symfony, ez Components und CakePHP könnte man schonmal gehört haben. Eine vollständige Liste mit allen PHP Frameworks findet sich zB hier: www.phpframeworks.com
Welches man nun benutzt bleibt einem selbst überlassen (bzw. wird vom Arbeitgeber/Kunden vorgeschrieben), man sollte sie sich aber zumindestens kurz anschauen und die Quick-Guides durchsehen, um einen Eindruck zu bekommen. Oder man fragt gleich den PHP-Experten seiner Wahl, was er empfehlen würde.
In der Firma sind wir hier vor ca. einem Jahr auf das Zend Framework umgestiegen. Vorher haben wir viele PEAR-Klassen genutzt, und uns mit Hilfe von „frontend, backend und template-Ordnern“ selbst eine rudimentäre MVC Basis gebastelt, da PEAR kein MVC-Konzept bietet. Das war auf jeden Fall ein großer Schritt nach vorn, mittlerweile haben wir alle PEAR-Klassen sogut es geht ersetzt durch die entsprechenden ZF-Pendants, aber ganz „losgeworden“ sind wir PEAR noch nicht. Noch ein Grund, mehrere Frameworks zu kennen, denn ein Framework, das alles kann, gibt es nicht (und wird es auch nicht geben).
Beim Zend Framework wird es natürlich auch gern gesehen, Fehler zu melden (im ZF Issue Tracker) und eventuell sogar selbst aktiv Code beizutragen, denn das ganze Projekt ist natürlich Open Source, und es gibt einen gut dokumentierten Weg, eigenen Code oder sogar eigene Klassen beizutragen. Bugfixes kommen natürlich am besten direkt in den Issue Tracker, wohingehen neue Funktionalitäten und Klassen verschiedene Stadien durchlaufen müssen, um schlussendlich aufgenommen zu werden. Dazu gehört am Anfang das Proposal, also der erste Entwurf und die Vorstellung für die Allgemeinheit. Nachdem andere Entwickler ihren Senf dazugegeben haben, kommt der Code in das Laboratory, dann den Incubator, und dann irgendwann hoffentlich in den offiziellen Zweig. Recht aufwändig, aber durchaus nötig, damit auch nur nötiger und qualitativ hochwertiger Code ins Framework gelangt.
Ich als Entwickler freue mich aber natürlich auch über die vorherigen Schritte, denn auch dort gibt es bereits Code, den man im Notfall verwenden kann, wenn man diese oder jene Funktionalität unbedingt benötigt. Die Liste der Proposals ist wirklich ansehnlich, ihr könnt es ja mal überfliegen und euch einen Eindruck holen: ZFPROP
Zusammenfassend sei gesagt, dass es mir extrem gut gefällt, wie das Zend Framework organisiert ist, dadurch macht PHP noch mehr Spass als vorher.