Symfony – Beginn einer Liebesgeschichte

Symfony LogoEine wunderbare Nachricht erreicht mich da heute. Seit einiger Zeit spreche ich vom PHP-Framework Symfony nur noch wie verliebt und ernte dementsprechende Blicke meiner Kollegen – man kann es ihnen nicht übel nehmen. „Jetzt macht er vollständig einen auf Programmierer, steht auf irgend so ein Framework, anstatt auf Frauen.“ Dabei kommt es nur auf den Blickwinkel an, um zu sehen: Durch dieses Framework habe ich erst wieder Zeit für Beziehungen!

Wie konnte es nur so weit kommen?

Ok, ich merke, ich muss weiter ausholen: In den letzten Jahren habe ich sehr viel mit Joomla bzw. Mambo gearbeitet, eigene Komponenten geschrieben und auch größere Projekte auf Basis von Joomla Joomla Logoumgesetzt. Seit Ende letzten Jahres warte ich nun auf Joomla 1.5. Habe mir die Beta Versionen schon einige Male angesehen, aber so richtige Hochstimmung wollte da nicht aufkommen, davon abgesehen, dass die neue Version bis heute nicht als stabil zur Verfügung steht. Anstatt dessen letzte Woche die, wie ich finde, Hiobsbotschaft: Das „Quality & Testing“- sowie das Design & Accessibility“-Team wurde abgeschafft. Herrje, was soll das denn jetzt? Nun, darum soll es hier nicht gehen. Einen sehr guten Beitrag dazu gibt es aber unter www.nitsche.org.

Um bei der Beziehung zu bleiben: Joomla und ich haben uns auseinandergelebt, sind aber noch gute Freunde, man kennt das ja. Ich will Joomla nicht schlecht machen, ich mag es, aber vor allem wenn es um Anwendungsentwicklung ging, gab es ganz klare Grenzen, an denen alles eher in Frustration umschlug. So machte ich mich also auf die Suche, nach einem wirklichen PHP Framework. Recht schnell hatte ich die wohl üblichen Verdächtigen in der engeren Auswahl:

Eigentlich hätte ich gerne die erste Stable Version des Zend Frameworks genutzt. DasZend Framework Logo wäre eine reine Sache der Vernunft gewesen. Das Zend Framework wird früher oder später zum quasi Standard PHP Frameworks, da habe ich eigentlich keine Zweifel. Aber, warum Vernunft, wenn es um Liebe geht?! Daher gibt es hier keinen Vergleich der Frameworks, dafür habe ich, mit gerade mal 2 Tagen, bei weitem nicht intensiv genug getestet. Einen interessanten Erfahrungsbericht und Vergleich zwischen cakePHP und Symfony findet man hier und einmal Goolge angeworfen, hagelt es nur so Vergleichstests.

Nein, es geht darum, warum ich mich so schnurstracks in Symfony verliebt habe. Ohne lange Kennenlernphase, Händchenhalten und alles was dazu gehört…

Nun, Symfony ist verdammt sexy!

Ich bin krank? Hm, ich versuche zu erklären, wie ein OpenSource Projekt sexy sein kann:

  1. Die Dokumentation läßt kaum Wünsche offen und wird aktiv von der Community weiterentwickelt. Grundlage ist ein komplettes Buch, welches direkt aus der Feder der Entwickler stammt, was der Verständlichkeit allerdings in keiner Weise schadet, also nicht in unverständliche Fachsimpelei ausartet. Am Beispiel von Symfony werden unzählige etablierte Techniken zur professionellen PHP-Entwicklung leicht verständlich angesprochen, so das selbst Programmierer, die bereits eine andere Liebe gefunden haben, daran ihren Spaß haben können.
  2. Askeet LogoDie Doku ist recht theoretisch gehalten, im Praktischen setzt dafür dann aber das Askeet Tutorial der Dokumentation die Krone auf. In 24 Tagen (Es handelt sich dabei ursprünglich um einen Weihnachtskalender) wird die komplette Entwicklung einer Anwendung in Symfony geschildert, so das man danach wirklich heiß ist, selbst zu entwickeln. Live ist die Anwendung hier im Einsatz.
  3. Mit Hilfe von Scaffolding wird die Anwendungsentwicklung enorm beschleunigt. Keine wiederkehrenden, nervenden Aufgaben: Wenige Zeilen auf der Komandozeile und das Grundgerüst steht. Im einstündigen Tutorial „My first symfony project“ ist sehr gut nachzuvollziehen, wie viel Arbeit dadurch von Symfony übernommen wird. Einige kennen es sicherlich durch Ruby on Rails, aber hey, ich stehe nun mal auf PHP und da bin ich froh, dass da so etwas nettes nach meiner sexuellen Ausricht …ok, lassen wir das.
  4. Der Admin Generator ist dann wirklich ein wahrer Segen. Anhand von Konfigurationsdateien und der Datenbankstruktur, generiert Symfony das komplette Backend, ohne das dazu auch nur eine Zeile PHP nötig wäre. Das Zend Framework bietet bisher noch nichts vergleichbares. In Aktion ist der Admin Generator in diesem Video zu bewundern – zwischenzeitlich hatte ich Probleme den Mund wieder zu schließen…
  5. Soweit ich es bisher überblicken kann, handelt es sich um eine wirklich solide PHP5 Codebasis, ohne ständige Ausnahmen. PHP5 ist damit allerdings auch Voraussetzung. Zudem machen die Entwickler einem Hoffnung, in dem sie das ganze als „Enterprise Version“ bezeichnen, die Codebasis also noch lange Zeit gepflegt werden soll.
  6. Es ist bereits alles an Bord zur Internationalisierung. Eine Never Ending Story bei der Joomla Entwicklung.
  7. Viele eingebaute Helfer, die einem das Leben einfacher machen. So ist z.B. Prototype und script.aculo.us bereits integriert. Ein sehr schönes Anwendungsbeispiel dazu ist dieses Video, in dem ein Ajax Warenkorb, mit einigen netten Effekten, programmiert wird.
  8. Zur Philosophie gehört es, möglichst viel in Konfigurationsdateien auszulagern. Was auf den ersten Blick nach ziemlichem Overhead aussieht – es gibt bis in die letzte Ebene immer speziellere Konfigurationsdateien – stellt sich als ideale Grundlage für leicht erweiterbare und konfigurierbare Anwendungen da.
  9. Das Framework ist durch zahlreiche Plugins erweiterbar. Ein Beispiel, welches mir meine Entscheidungsfindung letztlich enorm vereinfacht hat: Das Zend Framework ist via Plugin zu integrieren!
  10. Es gibt noch einiges mehr zu entdecken, aber an dieser Stelle habe ich es satt, mich für meine Liebe zu rechtfertigen, und fordere zu eigenen Entdeckungsreisen auf!

Was für eine Nachricht denn nun eigentlich?

Delicious LogoHerrje, nach all diesen Liebesbekundungen, zum eigentlichen Thema zurück. Heute trudelte auch bei mir die Nachricht ein, dass Yahoo, nachdem bereits Yahoo Bookmarks auf Symfony basiert, auch die kommende Version des sehr beliebten Social Bookmaringkdienstes Delicious auf Symfony aufsetzt.

Für mich sind solche Nachrichten wie, hm, ja, als ob mich die Eltern meiner Freundin mögen… Quak! Nein, es bedeutet das meine Entscheidung, wenn sie auch noch so viel aus dem Bauch heraus war, so falsch nicht gewesen sein kann!

Und was soll nun werden, hm?

In den nächsten Monaten werde ich das ein oder andere Projekt auf Basis von Symfony umsetzen. Die ersten Härteprüfungen. Ich freue mich darauf. Hoffentlich besteht die Beziehung das. Es gibt sicherlich auch einiges das gegen Symfony spricht. Als erstes mag es die Lernkurve sein, die anfangs doch arg steil ist, aber es lohnt sich!

Vielleicht habe ich ja auch den ein oder anderen auf den Geschmack gebracht. Keine Angst, ein weiterer Vorteil von Symfony ist, dass man es, im Gegensatz zum Partner, gerne teilt…

5 Gedanken zu „Symfony – Beginn einer Liebesgeschichte“

  1. Schöner Beitrag Andy. Zum größten Teil würde ich selbst nichts anderes über Symfony schreiben.

    Beim Punkt 9, den vielen Konfigurationsdateien, sehe ich ein einen kleinen Nachteil. Denn es ist mir schon oft passiert, dass ich überlegen mussten, wo nun wieder dieser bestimmte Parameter definiert wurde. Ich glaube, dass früher oder später eine zentrale Konfigurations-„Datenbank“ kommen wird.

    Hast du bei deinen Recherchen etwas gefunden, ob Yahoo inzwischen Beiträge zum Symfony Project geliefert hat? Soweit ich mich erinnern kann, haben sie als die Meldung mit Yahoo Bookmarks rausging, etwas in dieser Richtung angekündigt. Nur bisher habe ich nichts entsprechendes gefunden.

  2. Hey, vielen Dank! Mein erster Kommentar, ich bin begeistert :)

    Ja, wenn ich meine Verliebtheit mal außer Acht lasse, gibt es an den ganzen Konfigurationsdateien sicherlich auch einiges negatives. Das ein oder andere Mal habe ich mich bereits verrannt und wenn es dann auch noch um Dateien geht, die man, entgegen der Erwartung, erst noch anlegen muss, kann das noch einmal für weitere Verwirrung sorgen.

    Grundlegend bin ich aber froh DAS man überhaupt die Möglichkeit hat, die Dinge bis ins kleinste Detail zu konfigurieren. Um noch mal Joomla als beispiel zu missbrauchen: Dort gibt es eine Konfigurationsdatei und einen allgemeinen Wust weiterer Konfigurationen, die jeder Komponenten-Entwickler, meist nach belieben, gestaltet oder auch einfach weg lässt und fest in Code schreibt. Da bin ich jetzt erstmal froh um jede Konfigurationsmöglichkeit.

    Zu den Weiterentwicklung von Yahoo konnte ich leider auch nicht mehr heraus finden, als das es welche geben soll. Na, ich bin mal gespannt!

  3. Hallo Andy,

    toller Beitrag zu Symfony, ich kann Deine Liebe nachvollziehen. ;)

    Dustin Whittle treibt bei Yahoo! die Symfony-Entwicklung voran und ist aktives Mitglied der Symfony-Community. Die Anpassungen, Weiterentwicklungen und natürlich die Bugfixes durch Yahoo! fließen im dwhittle Branch in den Symfony-Code ein.

  4. Dankeschön :)

    Vielen Dank auch für die Info. Den Namen sollte man wohl kennen, so zumindest mein Gefühl, nachdem ich Google mal angeworfen habe. Hier z.B. ein Beitrag von ihm zu Symfony dustinwhittle.com/developing_with_symfony_-_ajax_world_expo_2007.pdf Sehr schön auch am aktuellen Branch zu sehen, dass sich da tatsächlich nahezu täglich etwas tut.

    Ich spiele gerade mit sfGuard rum und bin wieder kurz vor einem Gefühlsausbruch. Ich werde berichten!

Kommentare sind geschlossen.