Es ist mal wieder Zeit für etwas neues. Mittlerweile kann ich doch schon auf ein paar Frameworks/CMS zurückblicken:
- Drupal (ja, ich würde das auch als Framework klassifizieren) (PHP)
- CodeIgniter (PHP)
- Zend Framework 1.x (PHP)
- Django (Python)
- TYPO3 (PHP)
- WordPress (PHP)
- Sharepoint 2007 & 2010 (nur Endanwendung und "leichte" Entwicklungen mit Sharepoint Designer und on board Mitteln)
Neuestes Mitglied in der Familie ist Symfony2. Übungsprojekt ist ein kleiner Rest Server, sowie ein passender Rest Client. Hier meine bescheidene Einschätzung:
Gefällt mir sehr gut
- Dokumentation. Die einzelnen Teile sind sehr gut Dokumentiert und vor allem auch immer mit vielen praktischen Beispielen illustriert. Dazu gibt es entweder die Hauptdokumentation auf symfony.com oder dann jeweils noch detaillierte Dokumentationen auf den Webseiten der einzelnen Komponenten.
- Filestruktur. Obwohl es mit der Zeit ziemlich verschachtelt wird und eine beachtliche Anzahl an Files zusammenkommt, finde ich doch eine gewisse Logik dahinter.
- Kommandozeilen Tools. Noch habe ich hier relativ wenig ausprobiert, aber mit wenigen Zeilen im Terminal lassen sich Getter und Setter erzeugen, die Datenbank entsprechend der Klasse anpassen (falls ein ORM verwendet wird), Cache leeren usw.
- Abstraktion in hält sich in Grenzen. Das Zend Framework schien mir viel komplexer mit unzähligen Vererbungen und abstrakten Klassen. Vielleicht ist das bei Symfony lediglich der Schein, aber es scheint alles eine Stufe einfacher zu sein.
- Developer Toolbar. Herrlich. Wichtige Informationen sind jederzeit zur Hand.
- Composer. Anfänglich war ich doch noch ein bisschen skeptisch. Mittlerweile bin ich begeistert, wenn ich auch noch nicht vollumfänglich dahinterblicke. In a Box: Composer ist apt-get upgrade für PHP.
- Sehr einfaches Deployment. Das liegt weniger an Symfony als vielmehr an PHP.
Gefällt mir weniger gut
- Fehlendes Admin Backend. Das Admin Backend von Django ist eine wahre Freude. Ohne etwas zu machen, hat man ein erweiterbares funktionales Backend, um Daten zu bearbeiten. Das fehlt leider bei Django.
- Syntax. Ist eher ein PHP "Problem", aber mein kurzer Ausflug in die Python Welt hat mir gezeigt, dass es auch eine Welt ohne geschweifte Klammern gibt und dass dadurch der Code doch um einiges leserlicher wird.
Alles in allem bin ich sehr zufrieden mit Symfony. Es erinnert stark an Django und scheint wie Django für PHP (Logger, ORM, Security…). Leider ist es in einigen Stellen nicht ganz so elegant wie Django. Der geneigte Leser kann sich jetzt natürlich fragen: "Also, warum dann nicht Django". Die Antwort ist ganz einfach. Infrastrukturmässig kenne ich mich viel besser in der LAMP (Linux Apache MySQL PHP) aus. Ich hatte keine Lust mich mit dem ganzen CGI geraffel, welches nötig ist um Python zu deployen herumzuschlagen. Zudem hat Symfony doch auch noch ein bisschen was gemeinsam mit Drupal 😉 … kommt fast ein bisschen Nostalgie auf.
Meine Empfehlung
Mit Symfony ist man relativ schnell produktiv. Natürlich: Die Lernkurve ist überall vorhanden, aber dennoch ist es dank der guten Dokumentation machbar.