8. Februar 2018 Allgemein 0 Comments

Symfony: Stärken und Schwächen des PHP-Frameworks

Symfony ist ein quelloffenes Framework für Web-Applications auf PHP-Basis. Dieses Framework folgt dem Model-View-Controller-Schema (MVC). Die fundamentale Architektur sowie die grundlegenden Funktionalitäten werden vorgegeben, sind jedoch an individuelle Bedürfnisse anpassbar. Der zunehmende Bekanntheitsgrad hat für eine große und steigende Anzahl vorgefertigter Bundles (vergleichbar mit Modulen bzw. Plug-ins) geführt, die Sie direkt in Ihr Projekt implementieren können.

Idee und Funktion

Entwickelt wird das Framework von Sensio Labs. Die Erfahrung des Herstellers in der PHP-Entwicklung wird genutzt, um eine Grundlage für Web-Projekte mittlerer und auch großer Art zur Verfügung zu stellen. Die Idee hinter der Entwicklung war die Erstellung des perfekten Web-Frameworks, das auch in Punkten wie Performance und Flexibilität hohen Ansprüchen gerecht wird.

Als Projekt lässt sich eine Symfony-Anwendung in mehrere Bundles aufteilen. Durch die vorgegebene Architektur wird versucht, die Entwickler und Nutzer des Frameworks selbst zur Produktion sauberen und gut strukturierten Codes zu veranlassen. So sollen etwa Templates ausschließlich in der Präsentationslogik erstellt und die Geschäftslogiken korrekt in den Klassen für Modelle und Formen hinterlegt werden.

Zur Verringerung der Entwicklungszeit aufwendiger Web-Anwendungen bietet das Framework eine Reihe von Tools. Bestimmte Routineaufgaben sind bereits automatisiert. Somit können Entwickler voll auf die Anwendungslogik fokussieren und es wird bei der Entwicklung neuer Web-Applikationen auf bereits vorhandene Grundlagen zurückgegriffen, damit hierfür nicht ständig separate und sich bei jedem neuen Projekt wiederholende Entwicklungsschritte erforderlich sind. Auch viele Webanwendungen, die eine hohe Performance erfordern, setzen auf dieses Framework.

Stärken und Vorteile

Neben der optimierten Performance und der Wiederverwendbarkeit von Code bietet die umfangreiche Template-Engine Twig einige Vorteile. So lassen sich beispielsweise mehrere Javascript- und CSS-Dateien dynamisch einbinden, die anschließend automatisch zusammgefasst und gegebenenfalls komprimiert (minified) werden, um die Ladezeiten zu reduzieren. Auch die Wiederverwendbarkeit von Code wird durch Twig optimal unterstützt.

Von Vorteil ist auch das Routing, das URLs automatisiert auf die korrekten Klassen leitet. Dies geschieht anhand einer bestimmten Konfiguration. Ebenso ist es möglich, anhand der Konfiguration URLs dynamisch zu erstellen. Im Falle einer Änderung der Konfiguration müssen Sie nicht die einzelnen URLs in den Templates anpassen.

Neben dem Routing ist es auch möglich, auch das auszugebende Format anhand der Konfiguration anzugeben und auf einfache Weise zu ändern. Sollten etwa spezielle URLs benötigt werden, die bei bestimmten Anfragen stets bestimmte Werte zurückliefert, so dies ebenfalls automatisiert werden. Somit lässt sich beispielsweise festlegen, ob die Antwort (Response) als HTML, JSON oder in einem anderen Format (Content-Type) ausgeliefert werden soll.

Das automatisierte Caching bringt einen enormen Performance-Vorteil. Gerade bei komplexen Webanwendungen mit einer großen Nutzeranzahl zur gleichen Zeit wird so die Serverlast reduziert.

Schwächen und Nachteile

Der erste Umgang mit dem Framework als Entwickler gestaltet sich als Herausforderung. Die zahlreichen Strukturen, der Funktionsumfang und die Konfigurationsmöglichkeiten wollen zunächst gelernt sein, umfangreichere und aufwändigere Aufgaben erfordern bisweilen tiefgreifende Kenntnisse.

Viele der Tasks der Anwendung werden über die Kommandozeile ausgeführt. Im Falle, dass kein Zugriff auf die Kommandozeile möglich ist (beispielsweise beim Einsatz eines normalen Webspaces ohne Root-Zugang)), stehen Sie vor der Herausforderung, eine alternative Möglichkeit zu finden, Tasks wie Unit-Tests, Aktualisierung des Datenbank-Schemas oder das Löschen/Erneuern des Cache auszuführen.

Fazit

Als umfangreiches Framework bedient das Symfony-Framework Anforderungen an mittlere bis große Web-Anwendungen. Für kleine Webanwendungen eignet sich der Ableger des Symfony-Frameworks namens „Silex“, das ebenfalls auf Symfony-Komponenten aufbaut. Da sich die meisten Frameworks jedoch in eine immer professionellere Richtung entwickeln, gewährleistet dieses Produkt bereits die dafür erforderliche Infrastruktur.

Share: