Im Frühjahr 2006 ver­öf­fent­lich­te das Software-Un­ter­neh­men Zend Tech­no­lo­gies (gehört mitt­ler­wei­le zu Rogue Wave Software) eine erste Pre-Alpha-Version des PHP-Frame­works Zend Framework unter der freien BSD-Lizenz. Gründer der is­rae­li­schen Firma waren die beiden Ent­wick­ler Andi Gutmans und Zeev Suraski, die zuvor im Rahmen ihres Studiums an der Tech­ni­schen Uni­ver­si­tät Israels mit anderen Ab­sol­ven­ten die von Rasmus Lerdorf pro­gram­mier­te Skript­spra­che PHP wei­ter­ent­wi­ckelt hatten. Nach­fol­gend arbeitete Zend Tech­no­lo­gies beständig an der Ver­bes­se­rung der Open-Source-Sprache und ver­öf­fent­lich­te unter anderem die Zend Engine – einen PHP-In­ter­pre­ter. Bis heute ist das Zend Framework über 15 Millionen Mal her­un­ter­ge­la­den worden. Mit der aktuellen Version 3, die im Juli 2016 die Nachfolge von Zend Framework 2.0 antrat und nicht mit den Vor­gän­ger­ver­sio­nen kom­pa­ti­bel ist, können Web-Ap­pli­ka­tio­nen und -Dienste erzeugt werden, die auf PHP 5.6 (oder höher) basieren.

Was ist das Zend Framework?

Das ob­jekt­ori­en­tier­te Zend Framework ist dank seines breiten Fun­da­men­tes die perfekte Ent­wick­lungs­platt­form für Web-An­wen­dun­gen. Die Kol­lek­ti­on pro­fes­sio­nel­ler PHP-Pakete, die in das Framework in­te­griert wurden, stellt eine große Ver­ein­fa­chung dar, die selbst erprobte Ent­wick­ler überzeugt. Ba­sis­funk­tio­na­li­tä­ten sind schnell und mit minimalem Pro­gram­mier­auf­wand in­te­griert, wodurch man den Fokus darauf legen kann, die Funk­tio­na­li­tä­ten der eigenen Ap­pli­ka­ti­on um­zu­set­zen. Das Framework nutzt den Pa­ket­ver­wal­ter Composer, die Skript-Test­um­ge­bung PHPUnit und Travis CI, ein Tool für kon­ti­nu­ier­li­che In­te­gra­ti­on, mit dessen Hilfe GitHub-Projekte gebaut und au­to­ma­tisch ver­öf­fent­licht werden können. Zend Tech­no­lo­gies erhält bei der Ent­wick­lung und stetigen Ver­bes­se­rung des Open-Source-Frame­works seit jeher Un­ter­stüt­zung durch die sehr aktive PHP-Community. Darüber hinaus bieten Firmen wie Google, Microsoft und Adobe, die Part­ner­schaf­ten mit Zend pflegen, für das Framework diverse Schnitt­stel­len zu ihren Web­ser­vices an.

Das bietet das Web-Ap­pli­ca­ti­on-Framework

Über 60 Pakete enthält die Standard-In­stal­la­ti­on des Zend Frame­works, die mithilfe von Composer und einer einfachen Codezeile schnell durch­ge­führt ist. Ist das In­stal­la­ti­ons­pa­ket nicht in der Pa­ket­ver­wal­tung Ihres Be­triebs­sys­tems enthalten, finden Sie selbiges auf der of­fi­zi­el­len Homepage. Al­ter­na­tiv können Sie die Pakete des Frame­works auch einzeln auf GitHub her­un­ter­la­den und nutzen. Unter anderem lassen sich mit den ver­schie­de­nen Kom­po­nen­ten und Klassen folgende Funk­tio­nen für Ihr Web­pro­jekt umsetzen:

  • Au­then­ti­fi­zie­rung/Be­nut­zer­ver­wal­tung
  • Da­ten­bank­zu­griff (CRUD)
  • E-Mail-System
  • Lo­ka­li­sie­rung
  • Such­in­de­xie­rung
  • Caching
  • MVC-Ar­chi­tek­tur

Der große Vorteil, den das Zend Framework dabei bietet, ist die Tatsache, dass alle Kom­po­nen­ten so pro­gram­miert worden sind, dass sie nicht von anderen abhängig sind. Eben diese Struktur macht es möglich, nur die be­nö­tig­ten Module her­aus­zu­pi­cken und auf diese Weise eine Ent­wick­lungs­platt­form ganz nach dem eigenen Geschmack zu­sam­men­zu­stel­len. Man spricht aus diesem Grund auch von einem „Glue“-Framework (dt. kleben, verbinden). Egal, ob Sie nur die leis­tungs­star­ke MVC-Ar­chi­tek­tur, ein CRUD-Interface für den Da­ten­bank­zu­griff, Au­then­ti­fi­zie­rungs­mög­lich­kei­ten für ver­schie­de­ne Be­nut­zer­grup­pen oder das komplette Paket benötigen, sind Sie also bestens gerüstet. Mit dem Test-Framework PHPUnit über­prü­fen Sie den Pro­gram­mier­fort­schritt aktiv und entdecken Schwach­stel­len und Fehl­funk­tio­nen bereits während des Ent­wick­lungs­pro­zes­ses. Das Zend Framework ist nicht nur für sich genommen eine sehr flexible Ar­chi­tek­tur: Nahezu alle Kom­po­nen­ten können Sie auch pro­blem­los in anderen PHP-Frame­works wie CakePHP oder Symfony einsetzen.

PHP als Ent­wick­lungs­ba­sis

Die ver­schie­de­nen Kom­po­nen­ten des Zend Frame­works basieren auf PHP, was das Framework zur ge­eig­ne­ten Wahl für alle Pro­gram­mie­rer macht, die planen, mit der dieser Skript­spra­che zu arbeiten. Die Open-Source-Software können Sie zudem ohne den Erwerb einer kos­ten­pflich­ti­gen Lizenz nutzen.

Un­kom­pli­ziert gestalten sich auch das Hosting und der Betrieb einer PHP-Web­an­wen­dung, sowohl in Ei­gen­re­gie als auch bei einem externen Anbieter, bei denen PHP zum Stan­dard­re­per­toire gehört. Dank des hohen Ver­brei­tungs­gra­des sind zudem zahl­rei­che Hand­bü­cher, Nut­zer­fo­ren und Support-Angebote in diversen Sprachen verfügbar, die von der hilfs­be­rei­ten Community be­reit­ge­stellt und betreut werden. Wie bereits erwähnt, haben die ver­ant­wort­li­chen Community-Mit­glie­der und -Ent­wick­ler außerdem einen großen Anteil an der Wei­ter­ent­wick­lung der Zend Engine und des Zend Frame­works. Seit Version 3 un­ter­stützt das Zend Framework das per­for­man­ce­ori­en­tier­te PHP 7, was die Ent­wick­lung noch leis­tungs­stär­ke­rer Web­an­wen­dun­gen möglich macht. Im Vergleich zu PHP 5.6 ver­spricht der of­fi­zi­el­le Nach­fol­ger nicht nur, für eine Ver­dopp­lung der Ge­schwin­dig­keit zu sorgen, sondern auch den Spei­cher­be­darf Ihres Web­pro­jek­tes zu op­ti­mie­ren.

Die ver­schie­de­nen Einflüsse auf die Wei­ter­ent­wick­lung von PHP sind der Struktur der Skript­spra­che im Verlauf al­ler­dings nicht immer zu Gute gekommen. Im Gegensatz zu Sprachen mit klarer Phi­lo­so­phie wie zum Beispiel Ruby hat sich die Aus­rich­tung von PHP immer wieder verändert. Anfangs von Perl, später auch von C, C++ und Java in­spi­riert, fehlt der Skript­spra­che vielen Kritikern zufolge die Ein­heit­lich­keit. Ins­be­son­de­re die Benennung von Funk­tio­nen und die Anordnung von Ar­gu­men­ten ist alles andere als selbst­er­klä­rend. Pro­gram­mie­rer müssen also eine Menge Geduld mit­brin­gen, um die Ge­ge­ben­hei­ten der Open-Source-Sprache ken­nen­zu­ler­nen und selbige an­schlie­ßend korrekt für die eigene Web­an­wen­dung einsetzen zu können. Der Einstieg mag zwar zunächst ver­hält­nis­mä­ßig leicht er­schei­nen, der weitere Lern­fort­schritt ist aufgrund des Fehlens klarer Konzepte aber meist eher schlep­pen­der Natur. Dabei stellt die Ar­chi­tek­tur des Zend Frame­works ten­den­zi­ell eher ein Hindernis dar, da die fertigen Skripte zwar Pro­gram­mie­rungs­auf­wand ersparen, den Hin­ter­grund für Anfänger aber schwerer ver­ständ­lich machen.

Zend Framework: Er­wei­ter­bar­keit und Support-Angebot

Auch wenn PHP struk­tu­rel­le Schwächen aufweist, die der Sprache in be­stimm­ten Punkten eine unnötige Kom­ple­xi­tät verleihen, zählt sie – insofern man sie be­herrscht – dennoch zu Recht zu den ef­fek­tivs­ten ser­ver­sei­ti­gen Pro­gram­mier­spra­chen für Web­pro­jek­te. Zend stellt erprobten Ent­wick­lern mit seinem Framework zudem das optimale Werkzeug für einen schnel­le­ren Ar­beits­pro­zess zur Verfügung. Wichtige Funk­tio­nen können mithilfe der ent­hal­te­nen Klassen und Kom­po­nen­ten nicht nur un­kom­pli­ziert in die eigene Web­an­wen­dung im­ple­men­tiert, sondern auch an die eigenen Be­dürf­nis­se angepasst werden. Zahl­rei­che, bereits über­ar­bei­te­te Kom­po­nen­ten, die man zu­sätz­lich zu dem Framework her­un­ter­la­den kann, erhöhen den Funk­ti­ons­um­fang zu­sätz­lich.

Ebenso viel­fäl­tig wie die Mög­lich­kei­ten sind auch die Hil­fe­stel­lun­gen, die für das Zend Framework exis­tie­ren: Online-Manuals, Tutorials und Webinare werden nicht nur von of­fi­zi­el­ler Seite, sondern auch von Mit­glie­dern der Zend-Community angeboten. Zu­sätz­lich gibt es ver­schie­de­ne Mai­ling­lis­ten, IRC-Kanäle und Foren in diversen Sprachen. Wenn Sie also in Erfahrung bringen wollen, wie die Web-Ap­pli­ca­ti­on-Ar­chi­tek­tur funk­tio­niert, haben Sie – wie auch bei der zu­grun­de­lie­gen­den Skript­spra­che PHP – genügend Material zur Hand. Auch der tech­ni­sche Support des Frame­works überzeugt: Zend betreut den gesamten Ent­wick­lungs­pro­zess der einzelnen Be­stand­tei­le und bietet für die größeren Releases einen drei­jäh­ri­gen Lang­zeit­sup­port an. Während dieses Zeit­rau­mes ver­öf­fent­licht das Un­ter­neh­men re­gel­mä­ßig kleinere Updates, die kritische Fehler und Si­cher­heits­lü­cken beheben.

Wenn Sie Bugs und Si­cher­heits­lü­cken im Zend Framework entdecken, können Sie selbige via GitHub-Report bzw. E-Mail melden.

Die Vor- und Nachteile des Zend Frame­works

Mit Zend Framework 3 und der im­ple­men­tier­ten Un­ter­stüt­zung von PHP 7 hat das Zend-Ent­wick­ler­team einen ent­schei­den­den Schritt in Richtung Zukunft gemacht und der Ap­pli­ca­ti­on-Ar­chi­tek­tur ein or­dent­li­ches Upgrade in Sachen Per­for­mance (auch für ältere PHP-5-Projekte) verliehen. Bis dato ist die Ge­schwin­dig­keit der ent­wi­ckel­ten An­wen­dun­gen ein häufiger Kri­tik­punkt des Frame­works gewesen, dem man nun ent­ge­gen­ge­steu­ert hat. Zwei ent­schei­den­de Nachteile birgt die Nutzung des voll­stän­di­gen Frame­works al­ler­dings auch weiterhin: Zum einen ist es aufgrund seiner komplexen Struktur nicht dazu geeignet, kleinere Projekte wie bei­spiels­wei­se eine einfache Website zu rea­li­sie­ren. Zum anderen machen das Framework und PHP als Pro­gram­mier­ba­sis den Einstieg nicht gerade einfach. Den Zeit­auf­wand, der mit dem Ken­nen­ler­nen der Ar­chi­tek­tur und der einzelnen Kom­po­nen­ten verbunden ist, sollten Sie kei­nes­wegs un­ter­schät­zen. Hinzu kommt die Tatsache, dass das Framework keine eigene Test­um­ge­bung bietet und man daher auf das externe PHPUnit an­ge­wie­sen ist.

Die Funk­ti­ons­fül­le steht aber auch stell­ver­tre­tend für die Viel­sei­tig­keit des Web-Ap­pli­ca­ti­on-Frame­works. Ferner zahlt sich die zu Beginn in­ves­tier­te Mühe lang­fris­tig gesehen mit großer Wahr­schein­lich­keit aus, da Sie beim Pro­gram­mie­ren nicht bei null beginnen, sondern in der Regel auf vor­ge­fer­tig­te Muster zu­rück­grei­fen können. Nur einen kleinen Teil Ihrer Anwendung müssen Sie selbst pro­gram­mie­ren. Dank des MVC-Moduls ist die Trennung von Nut­zer­ober­flä­che (GUI) und Business-Logik (die ei­gent­li­chen Pro­gram­mie­run­gen) dabei keinerlei Problem – ein großer Vorteil bei Web­pro­jek­ten mit re­gel­mä­ßi­gen De­sign­an­pas­sun­gen. Das größte Plus des Zend Frame­works ist al­ler­dings die her­vor­ra­gen­de Betreuung durch Zend Tech­no­lo­gies und die breit ge­fä­cher­te Community, die dem Framework seit Jahren die not­wen­di­ge Sta­bi­li­tät und Si­cher­heit verleiht.

Für wen eignet sich die PHP-Ar­chi­tek­tur?

Wie variabel ein­setz­bar das Zend Framework ist, ver­deut­licht eine Auf­zäh­lung bekannter Projekte. So basieren unter anderem die Shop­sys­te­me Magento und Shopware, das Content-Ma­nage­ment-System Pimcore, das Web-Analyse-Tool Matomo sowie die Ge­nea­lo­gie­soft­ware Webtrees auf dem PHP-Framework. Im CMS- und Shop­sys­tem-Bereich kommt dabei ins­be­son­de­re das modulare Schema des Frame­works zum Tragen. Der positive Ne­ben­ef­fekt ist, dass man im Falle eines Problems eine große Zahl po­ten­zi­el­ler An­sprech­part­ner hat. Generell lässt sich aber fest­hal­ten, dass der Nutzen des Frame­works umso stärker abnimmt, je kleiner das geplante Web­pro­jekt ist. Wenn Sie eine einfache Fir­men­sei­te oder eine per­sön­li­che Homepage kreieren wollen, gibt es deutlich ef­fi­zi­en­te­re und res­sour­cen­scho­nen­de­re Lösungen.

Auch Ihre Sprach­vor­lie­ben spielen eine ent­schei­den­de Rolle, denn der Einsatz des Zend Frame­works bedeutet immer auch die Not­wen­dig­keit von PHP – auch wenn Sie die Kom­po­nen­ten in andere Frame­works portieren. Während sich erprobte Ent­wick­ler an die Ver­ein­fa­chun­gen gewöhnen bzw. sich auf selbige einlassen müssen, gestaltet sich der Einstieg für Neulinge doppelt schwer: Es gilt ei­ner­seits PHP zu erlernen und an­de­rer­seits die vor­ge­fer­tig­ten Kom­po­nen­ten zu verstehen. An­dern­falls ist es nicht möglich, das Framework zweck­mä­ßig für das eigene Projekt ein­zu­set­zen und ent­spre­chend an­zu­pas­sen.

Zend Framework: Flexibles Grund­ge­rüst für moderne PHP-Projekte

Wenn Sie planen, eine Web­an­wen­dung auf Basis von PHP zu pro­gram­mie­ren, und dabei jede einzelne Codezeile selbst schreiben möchten, können Sie auf den Einsatz des Zend Frame­works guten Gewissens ver­zich­ten. Sind Sie hingegen auf der Suche nach zeit­spa­ren­den Hil­fe­stel­lun­gen während des Ent­wick­lungs­pro­zes­ses, lohnt es sich, einen Blick auf die Zend-Ent­wick­lungs­platt­form zu werfen. Mit dieser rea­li­sie­ren Sie Ihre Web­an­wen­dung mithilfe fertiger PHP-Pakete, ohne den kom­plet­ten Code von Grund auf neu schreiben zu müssen. Be­triebs­sys­tem und Webserver können Sie dabei frei wählen, denn PHP wird als eta­blier­te Skript­spra­che von jeder modernen Plattform und Software un­ter­stützt.

Seit Version 3 un­ter­stützt das Zend Framework PHP 7, was An­wen­dun­gen, die mit dem Web-Ap­pli­ca­ti­on-Gerüst erstellt wurden, einen zu­sätz­li­chen Ge­schwin­dig­keits­schub verleiht. Da eine große Community Hil­fe­stel­lun­gen zur Skript­spra­che und auch zum Framework bietet, sind Sie bei Fragen und Pro­blem­stel­lun­gen in guten Händen. Al­ler­dings führt die große Ver­brei­tung auch dazu, dass sich Kri­mi­nel­le gezielt auf die Suche nach Schwach­stel­len im Zend Framework und in ent­wi­ckel­ten Ap­pli­ka­tio­nen begeben. Mithilfe der of­fe­rier­ten Hilfs­an­ge­bo­te stellt es al­ler­dings keine un­über­wind­ba­re Hürde dar, einen sauberen und sicheren Code zu schreiben und po­ten­zi­el­len Angriffen somit vor­zu­beu­gen. Zudem können alle Nutzer des Frame­works, entdeckte Si­cher­heits­lü­cken melden, sodass diese bei der nächst­mög­li­chen Ge­le­gen­heit ge­schlos­sen werden.

Zum Hauptmenü