Die Qual der Wahl bei der Suche nach einem PHP Framework

Die Qual der Wahl bei der Suche nach einem PHP Framework

Ich arbeite vorzugweise mit dem Content Management System WordPress und den Shopsystemen Shopware und Magento. Für spezifische Anforderungen, wie z.B. ein Tool zur Organisation meiner eigenen Arbeit macht es aber wenig Sinn, diese in einem Shopsystem oder Content Management System umzusetzen. Dafür bieten sich entsprechende PHP-Frameworks wie das Zend Framework, cakePhp oder Symfony an. Mein Favorit ist letztendlich Symfony geworden.

Klar, man kann die Anwendung auch von Grund auf selbst schreiben. Dabei bietet sich PHP deshalb an, weil man problemlos einen Provider mit günstigem Speicherplatz findet, der PHP und die Datenbank MySQL unterstützt. Denn das Tool, ich nenne es mal DailyBusiness, soll über das Web verfügbar sein, so dass ich meine Einträge vom Büro, von zu Hause aus und später natürlich auch von unterwegs aus mit dem Smartphone pflegen kann.
So was könnte man natürlich auch in ein System wie WordPress reinfummeln, als Plugin z.B., aber damit wäre die Anwendung immer von WordPress als Basis abhängig. Da macht es schon mehr Sinn, die Grundfunktionalität in eine eigene Anwendung zu kapseln. Bietet man Schnittstellen oder API’s an, über die man mit der Anwendung kommunizieren kann, spricht ja nichts dagegen, die Funktionen als Widget oder Plugin in ein System wie WordPress zu integrieren.

Nun habe ich mir in der letzten Zeit einige Frameworks angeschaut, Voraussetzung war, dass das Framework das MVC-Konzept unterstützt. MVC ist eine Architektur, die Model, View und Controller voneinander trennt. Dabei repräsentiert das Model das Datenmodell (inklusive der Persistierung der Daten, z.B. in eine Datenbank), der Controller kümmert sich um die (Business-)Logik und die View um die Darstellung und Präsentation der Daten.
Begonnen habe ich mit dem Zend Framework, denn damit habe ich vor Jahren mal gearbeitet und außerdem taucht dieses Framework in Systemen wie Magento und Shopware auf. Es scheint sich in den letzten Jahren mit dem Zend Framework aber einiges getan zu haben und ich fand die Informationen im Netz für einen Einstieg in das Thema eher verwirrend als hilfreich. Jedenfalls habe ich mich dann auf die Suche nach einem leichtgewichtigeren PHP Framework gemacht und bin bei CakePHP gelandet. Da habe ich mich durch das Getting Started-Dokument gewühlt, mit der man eine kleine datenbankbasierte Anwendung erstellt. Die lief dann auch, aber viele Dinge waren für mich nicht nachvollziehbar. Mit Anpassungen dieser Anwendung Richtung meinen eigenen Wünschen bin ich dann auch schnell auf Probleme gestoßen und habe mich dann mehr in den entsprechenden Foren getummelt als mich mit meiner eigenen Anwendung beschäftigt.

Dann bin ich über eine recht aktuelle Übersicht der Verbreitung verschiedener Frameworks gestolpert (weiß leider nicht mehr wo?) und musste feststellen, dass CakePHP wohl eher, oder inzwischen zu den Exoten gehört. Den hochgelobten Newcomer Yii habe ich mir nur noch kurz angeschaut und das neue Typo3 Flow gar nicht. Bei Letzterem hatte ich den Verdacht, dass es zu eng mit dem CMS Typo3 verbunden ist, was aber wohl ein Trugschluss meinerseits ist. Aus dieser Übersicht ging jedenfalls hervor, dass Symfony neben dem Zend Framework zu den herausragenden und meisten genutzten Frameworks gehört. Auch kein Leichtgewicht zwar, aber extrem flexibel.

Erste Eindrücke mit Symfony

Was mir auf Anhieb bei Symfony gefallen hat, ist die Webseite des Projekts mit der reichhaltigen Dokumentation. Neben dem üblichen Getting Started-Papier gibt es ein komplettes Buch zur Einführung (250 Seiten) und ein Cook-Book mit zahlreichen, klar definierten Anwendungsfällen sowie deren Umsetzung mit Symfony (gesamte verfügbare Dokumentation ist allerdings auf Englisch!).

Mit Symfony installiert man eine komplette Entwicklungsumgebung mit eigenem, auf PHP basierenden Server. Hat man sich erst einmal damit abgefunden erkennt man, dass Symfony den Entwicklungsprozess mit zahlreichen Tools unterstützt. Zur Installation und den Umgebungen von Symfony komme ich aber erst später in eigenen Beiträgen.
Was mir nun nach den ersten Schritten mit Symfony und nach den ersten Kapiteln im Buch zunehmend gefällt, ist das klare Konzept des Frameworks. Symfony ist nicht nur objektorientiert und unterstützt das MVC-Konzept, sondern das gesamte Framework besteht aus Bundles. Diese Bundles funktionieren ähnlich den Plugins in Magento oder WordPress. Man schreibt seine eigenen Anwendungen in Form von Bundles, kann aber auch bereits bestehende Bundles von anderen Entwickler oder Anbietern einbinden (freie oder kommerzielle), und für das eigene Projekt verwenden.

Da Symfony selbst in Bundles organisiert ist, verwendet es bereits eigene Bundles wie Doctrine für die Anbindung von Datenbanken oder Twig als Template-Engine. Damit ist Symfony so offen, das man für diese Aufgaben auch andere oder eigene Bundles verwendet werden können.
Symfony ist zwar nicht das leichtgewichtige PHP-Framework zur schnellen Erstellung von webbasierten Anwendungen, wie ich mir das erhofft hatte, aber nach den ersten Eindrücken bin ich mir sicher, dass Symfony für mich das Tool der Wahl ist und sich eine eingehende Einarbeitung in das Thema lohnt. Die nächste Zeit werde ich jedenfalls meine kleine Anwendung DailyBusiness auf Basis dieses Framework erstellen und meine Erfahrungen hier berichten.

Download, Dokumentation und weitere Informationen

Weitere Beiträge über das PHP-Framework Symfony

Allgemeine Lesetipps über PHP-Frameworks (Partnerlink):

Trackbacks/Pingbacks

  1. Webanwendung mit PHP-Framework Symfony | virtual-commerce.de - […] im Beitrag Die Qual der Wahl bei der Suche nach einem PHP-Framework beschrieben, fand ich die Idee, den über…
  2. Ganz großes Kino: Shopware 5 in München | virtual-commerce.de - […] Ich bin gespannt, wie sich diese tiefere Intergration dieses PHP-Frameworks auswirken wird. Jedenfalls bestätigt dieses Vorgehen meine eigene Einschätzung:…

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *