Symfony ist ein in PHP geschriebenes Webframework und eine Menge von wiederverwendbaren PHP-Komponenten/Bibliotheken. Symfony wurde am 18. Oktober 2005 unter der MIT-Lizenz veröffentlicht.
Symfony wird seit 2005 unter der Führung von Fabien Potencier entwickelt. Es entstand parallel zur steigenden Popularität von Ruby on Rails und dem Wunsch nach einem ähnlichen MVC-Framework auf PHP-Basis. Symfony versucht die Konfiguration auf ein Minimum zu beschränken. Wenn keine Konfiguration dafür angegeben ist, erfolgt die Zuordnung von z. B. Models zu Datenbanktabellen über die Namensgleichheit in Singular und Plural (Konvention vor Konfiguration). Durch die Konsolenanwendung können einfache Webseiten mittels Rapid Application Development entwickelt werden.
Version 2 ist im Juli 2011 erschienen. Sie stellt eine Neuimplementierung dar, die sich gänzlich von Version 1 unterscheidet. Eine einfache Möglichkeit, Anwendungen von Version 1 nach Version 2 zu migrieren, existiert nicht. Das Framework besteht nun aus Modulen, sogenannten Bundles, welche voneinander vollkommen unabhängig lauffähig sind, aber nahtlos in den Framework-Prozess integriert werden können.[5] Durch die Verwendung eines Dependency Injection Containers ist die gesamte Anwendung modular aufgebaut. Dies bewirkt eine einfache Testbarkeit und Erweiterbarkeit. Außerdem werden Namespaces unterstützt. Somit erfordert Symfony 2 PHP 5.3 oder höher.
Bundles
Bundles sind voneinander gelöste Einheiten einer Webapplikation. Ein fiktives Gästebuch-Bundle enthält demnach alle Daten, die zur vollständigen Lauffähigkeit des Gästebuchs dienen. Dazu gehört nicht nur die erforderliche Anwendungslogik, sondern auch Datenbankabfragen und Ressourcen (Grafiken, Scripts etc.). Entwickler können entwickelte Bundles veröffentlichen, so dass andere Nutzer von Symfony diese Applikationseinheiten ohne direkte Codeänderungen integrieren können.
Die Beziehungen zwischen verschiedenen Modellen werden über sogenannte Associations festgelegt.
Ab der Version 1.1 von Symfony wurde das bisherige Standardframework Propel in ein Plugin ausgelagert und ist nicht mehr fester Bestandteil des Frameworks.
View
Unter einem View versteht man die Präsentationsschicht der Applikation. In der View-Schicht werden mit Hilfe des Controllers Inhalte bereitgestellt, die oftmals Templates für die Ausgabe einbeziehen. Dabei kann beliebiger PHP-Code in einem Template eingebettet werden. Symfony bringt sogenannte Helper mit, welche bestimmte Ausgaben in Templates erstellen oder formatieren können, etwa Links oder Formulare. Für sich wiederholende Ausgaben kann man auf Partials zurückgreifen, welche innerhalb der Templates iterierbar sind.
Controller
Der Controller formuliert die Geschäftslogik und bietet Schnittstellen in Form von Methoden, die mit der Logik interagieren. Diese Schnittstellen/Methoden werden wie in vielen anderen Frameworks auch Actions genannt. Es können auch Parameter für die Methoden übergeben werden. Die Struktur der URLs kann mit Hilfe von Routen flexibel angepasst werden.
Versionen
Version
Erscheinungsdatum
Support
Support bis
PHP Version
Bemerkungen
Ältere Version; nicht mehr unterstützt: 1.0
Januar 2007
3 Jahre
Januar 2010
>= 5.0
Ältere Version; nicht mehr unterstützt: 1.1
Juni 2008
1 Jahr
Juni 2009
>= 5.1
Sicherheitsrelevante Updates bis Juni 2010
Ältere Version; nicht mehr unterstützt: 1.2
Dezember 2008
15 Monate
Februar 2010
>= 5.2
Ältere Version; nicht mehr unterstützt: 1.3
November 2009
1 Jahr
November 2010
>= 5.2
Wie 1.4, jedoch mit Kompatibilitäts-Ebene für bestehende Symfony-Projekte[6]
↑symfony-project.org: Symfony Versionen. Download and Install. Archiviert vom Original (nicht mehr online verfügbar) am 18. Dezember 2010; abgerufen am 2. November 2011.Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.symfony-project.org
↑ abcbasecom.de: SensioLabs Partner. Archiviert vom Original (nicht mehr online verfügbar) am 22. Februar 2016; abgerufen am 22. Februar 2016.Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.basecom.de