Code-Symfony

Serie: PHP-Frameworks Teil 2 - Symfony im Detail

22.7.2009 von Redaktion pcmagazin und Timo Haberkern

Nur wenige PHP-Frameworks wurden langfristig und kontinuierlich weiterentwickelt. Symfony gehört dazu und ist eines der populärsten und ausgereiftesten.

ca. 2:25 Min
Ratgeber
  1. Serie: PHP-Frameworks Teil 2 - Symfony im Detail
  2. Teil 2: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
  3. Teil 3: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
  4. Teil 4: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
  5. Teil 5: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
PHP-Frameworks Teil II - Symfony
PHP-Frameworks Teil II - Symfony
© Archiv

Die Entscheidung für ein PHP-Framework ist nicht so einfach, wie man auf den ersten Blick vielleicht annehmen könnte. Für andere Programmiersprachen existiert oft nur ein Framework, das dort die große Masse an Entwickler bindet. Rails für Ruby, Grails für Groovy oder Django für Python sind hierfür bekannte Beispiele.

Im PHP-Umfeld sieht dies ganz anders aus. Dutzende Frameworks buhlen hier um die Gunst der Entwickler. Die Wahl eines Frameworks hängt neben der reinen Funktionalität meist auch von anderen Faktoren ab, die oftmals sogar ungleich wichtiger sind.

Gerade im Firmenumfeld gilt es oft folgende Fragen vor dem Einsatz einer Lösung zu beantworten: Wird das Framework kontinuierlich entwickelt? Wie groß ist die Community? Unter welcher Lizenz wird das Framework vertrieben? Wie gut ist die Dokumentation? Wie viele Entwickler mit Kenntnissen in diesem Framework sind auf dem Markt? Wie hoch ist die Chance, dass das Framework auch noch in einigen Jahren existiert?

Wählt man nach diesen Kriterien aus, lichtet sich der Dschungel an Möglichkeiten recht schnell. Übrig bleibt meist eine Hand voll bekannter Lösungen. Symfony ist eine von ihnen. Ursprünglich für den internen Gebrauch des französischen Internetunternehmens Sensio Labs entwickelt, wurde es vor mehr als drei Jahren unter die MIT-Open-Source-Lizenz gestellt und veröffentlicht. Seit dieser Zeit hat sich gerade in Frankreich, Deutschland und den USA eine große Entwickler-Gemeinschaft gebildet.

Auch heute noch sind viele Sensio-Labs-Mitarbeiter für die Entwicklung des Frameworks verantwortlich, allerdings immer häufiger unterstützt von freiwilligen Helfern aus der Community.

Model-View-Controller

Wie die meisten modernen Webframeworks arbeitet auch Symfony nach dem Model-View-Controller-Prinzip. Ziel dieses kurz MVC genannten Entwurfsmusters ist die strikte Trennung von Daten-, Anwendungs- und Anzeigelogik einer Anwendung. Alle Teile arbeiten weitgehend unabhängig voneinander und haben jeweils eine fest umrissene Aufgabe.

Der Model-Part ist für das Datenhandling und somit für die Zugriffe auf eine Datenbank verantwortlich. Für die Umsetzung der Daten in eine grafische Benutzeroberfläche ist der View zuständig. Beide Anwendungsteile werden von einem Controller gesteuert. Er entscheidet, welche Daten des Models in welchem View angezeigt werden.

Diese strikte Trennung hat den Vorteil, dass einzelne Programmteile einfacher ausgetauscht werden können. Sollen beispielsweise die Daten zukünftig nicht mehr in einer Datenbank, sondern in Dateien abgelegt werden, ist lediglich eine Änderung der Klassen im Model notwendig, die restlichen Applikationsteile sind nicht betroffen. Das MVC-Prinzip eignet sich somit hervorragend für den Einsatz in der Entwicklung grafischer Benutzeroberflächen.

Erste Schritte

Zur Installation der für die Entwicklung notwendigen Symfony-Sourcen gibt es mehrere Wege. Die komfortabelste Möglichkeit ist das Setup über das PHP-PEAR-Kommando, das auf den meisten Entwicklungssystemen bereits eingerichtet ist. Hierüber lässt sich das Framework mit den folgenden beiden Kommandozeilenbefehle installieren:

$> pear channel-discover pear.symfony-
project.com
$> pear install symfony/symfony

Auf diese Weise wird die aktuellste stabile Version installiert. Alternativ kann man aber auch ältere oder Beta-Versionen des Frameworks in Betrieb nehmen.

Alte Bekannte

Während bei vielen Frameworks das Not-Invented-Here-Syndrom vorherrscht, das alle nicht selbst entwickelte Lösungen als nicht gut genug abtut, geht Symfony einen anderen Weg. Viele Komponenten des Frameworks sind für sich betrachtet eigenständig entwickelte oder aus anderen Frameworks herausgelöste Implementierungen.

Wichtigste Vertreter sind beispielsweise die Datenbank-Layer Propel und Doctrine, der YAML-Parser Spyck, die Internationalisierungsfunktionen, die in ihrer ursprünglichen Form aus dem PHP-Framework Prado stammen, oder die MVC-Funktionalität, die auf dem Mojavi-Projekt basierten.

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

internet, webdesign, adobe,  Illustrator, CS6

Webdesign

Webdesign in Adobe Illustrator CS6

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.

Facebook stellte die neue Suche

Facebook

Facebooks Social Graph Search

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?

Der BGH erklärt das Internet zur Lebensgrundlage.

Online-Recht

Darauf müssen Sie bei den AGB achten

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.

Online-Urheberrecht: Unser Ratgeber bietet Tipps für das Cloud-Recht.

Online-Recht in der Cloud

Wie sieht das Urheberrecht in der Wolke aus?

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…

Logistik im E-Commerce: Prozesse rund um die Logistik.

E-Commerce-Logistik

Logistik im E-Commerce

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.