Skip to main content

Symfony

Was ist Symfony?

Bei Symfony handelt es sich um ein mächtiges, in PHP geschriebenes Framework zur Entwicklung von Webanwendungen. Das Framework wurde 2005 veröffentlicht unterstützt viele bekannte und erprobte Design-Paradigmen und Komponenten der modernen Softwareentwicklung und -architektur. Symfony stellt also eine Sammlung von wiederverwendbaren PHP-Komponenten bzw. PHP-Bibliotheken dar. Dabei wird versucht, die Konfiguration stets auf ein Minimum zu beschränken. Wird keine Konfiguration angegeben, erfolgen beispielsweise Zuordnungen von Models zu Datenbanktabellen automatisch über die sogenannte Namensgleichheit (Singular und Plural). Durch eine Konsolenanwendung können simple Webseiten via sogenanntem Rapid Application Development entwickelt werden. Dabei bestehen typische Webanwendungen aus Frontend und Backend, welche jeweils aus verschiedenen unabhängigen Modulen aufgebaut sind.

Version 2 des Frameworks

Im Jahr 2011 erschien eine Neuimplementierung von Symfony, welche sich gänzlich von Version 1 unterscheidet. Es existiert keine Möglichkeit, Anwendungen aus Version 1 zu Version 2 zu migrieren. Neu in Symfony Version 2 ist der Aufbau, welcher nun auf Modulen (sogenannten Bundles) basiert. Dabei sind sämtliche Bundles voneinander unabhängig lauffähig, können dabei aber völlig nahtlos in den Prozess des Frameworks integriert werden. Die Verwendung eines Dependency Injection Containers ermöglicht einen komplett modularen Aufbau der Anwendung. Zudem werden Namespaces unterstützt. Aus allen genannten Eigenschaften ergibt sich deshalb eine einfache Testbarkeit sowie Erweiterbarkeit. Symfony 2 erfordert PHP 5.3 oder höher.

Bundles

Bei Bundles handelt es sich in Symfony wie bereits erwähnt um gelöste und unabhängige Einheiten einer Webapplikation. Beispielsweise kann ein (fiktives) “Gästebuch”-Bundle alle Daten enthalten, die zur vollständigen Lauffähigkeit eines Gästebuchs nötig sind. Dazu gehört nicht nur die nötige Anwendungslogik, sondern auch ganze Datenbankabfragen sowie Ressourcen (Grafiken, Fonts, Scripts, etc.). Jeder Entwickler kann von ihm entwickelte Bundles veröffentlichen, damit andere User von Symfony 2 diese sofort in eigenen Projekten nutzen können.

Schichtenaufbau

Das PHP-Framework setzt auf das Entwurfsmuster “Model-View-Controller”. Dabei ist das Model für die Speicherung von Objekten in relationalen Datenbanken verantwortlich. Dabei setzt Symfony auf Doctrine. Beziehungen zwischen mehreren Models werden über sog. “Associations” definiert. Unter dem View versteht man die Präsentationsschicht einer Anwendung. Dabei werden in der View-Schicht von verschiedenen Controllern Daten und Inhalte bereitgestellt. Dies kann oftmals auch Templates für die Ausgabe mit einbeziehen. In diese Templates kann auch beliebiger PHP-Code eingebettet werden. Weiterhin bringt Symfony von Haus aus verschiedene sog. Helper mit, welche bestimmte Ausgaben formatieren oder gar erstellen können (Formulare, Links, etc.).

Für wiederholte Aufgaben kann auf sogenannte Partials zurückgegriffen werden, welche innerhalb eines Templates iterierbar sind. Die Schicht “Controller” übernimmt abschließend die Geschäftslogik und bietet zudem verschiedene Schnittstellen in Form von Methoden, welche mit der Logik interagieren. In vielen anderen Frameworks werden diese Schnittstellen-Methoden auch “Actions” genannt. Selbstverständlich können, wie in der modernen Anwendungsentwicklung üblich, auch Parameter für die Methoden übergeben werden. Zudem sind die Strukturen der URLs durch zu Hilfenahme von Routen sehr flexibel gestaltet werden.

Bekannte Anwendungen auf Symfony-Basis

Verschiedene bekannte und oft genutzte Anwendungen und Applikationen setzen auf das Framework. Darunter sind beispielsweise die bekannten E-Commerce Anwendungen Shopware und Magento 2 oder die PIM-Anwendungen Akeneo und Pimcore. Außerdem setzen Drupal, phpBB oder Contao auf diese Technologie.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG