Symfony

Symfony

Copyright ┬ę Shutterstock / everything possible

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.

Hinweis

Wenn Sie noch weiter Informationen bez├╝glich des Themas Framework ben├Âtigen, k├Ânnen Sie sich gerne auf unserem Glossar dar├╝ber oder auch ├╝ber andere Themen weiterbilden.

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.

Hinweis

Wenn Sie noch weiter Informationen bez├╝glich des Themas Contao ben├Âtigen, k├Ânnen Sie sich gerne auf unserem Glossar dar├╝ber oder auch ├╝ber andere Themen weiterbilden.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte