Symfony
Symfony ist ein PHP5-Framework. Entwickelt wird es von der französischen Firma SensioLabs unter der Leitung von Fabien Potencier. Symfony ist OpenSource und ist unter der LGPL veröffentlicht. Das Framework entstand aus dem Wunsch heraus etwas Ähnliches wie Ruby on Rails für PHP zu haben.
Merkmale
Symfony ist ein sogenanntes Rapid Developement Framework und beschleunigt als solches die Entwicklung von Webapplikationen. Für eine einfache und strukturierte Programmierung sorgen unter anderem die folgenden Merkmale.
Symfony setzt PHP5 vorraus und ist nicht PHP4 kompatibel. Dadurch kann Symfony von den vielen Verbesserungen bezüglich Objektorientierung profitieren. Unter anderem sind das Sichtbarkeiten oder Typisierung.
Mit wenigen Handgriffen können komplexe Erstellungsaufgaben automatisch abgewickelt werden.
Symfony umfasst unter anderem die folgenden Bereiche.
MVC
Symfony implementiert das MVC-Prinzip und garantiert somit strukturierten und klaren Programmcode.
Datenbank Abstraction Layer
Symfony unterstützt Propel und Doctrine. Bis einschliesslich Version 1.1 wird Propel als Standard verwendet. Ab 1.2 wird Doctrine und Propel jeweils als Plugin mitgeliefert. Doctrine wird von den Entwicklern empfohlen und wird ebenfalls von SensioLabs entwickelt.
mehr zu Datenbank-Abstraktions-Layer
Command-Line-Interface
Durch sogenannte Tasks können Aufgaben direkt über ein Command-Line-Interface gestartet werden. Beispielsweise kann so leicht ein neues Projekt oder eine Applikation erstellt werden.
Formularframework
Das Formularframework ermöglicht die automatische Validierung, Anzeige und Speicherung von Webformularen.
Admingenerator
Mittels des Admingenerators können über das CLI-Interface automatisiert Adminmodule für bestimmte Datenbanktabellen erstellt werden.
Testumgebung
Symfony besitzt eine komplette Unit-Testumgebung, die es ermöglicht die entwickelten Komponenten vollumfänglich und automatisiert zu testen.
Konfiguration
Die Konfiguration wird in sogenannten YAML-Dateien gespeichert und zur Laufzeit in PHP-Dateien gecached. Ganz nach dem Prinzip "Konvention vor Konfiguration" besitzen alle Parameter einen Defaultwert und müssen nur im Ausnahmefall konfiguriert werden. Dies steigert die Übersichtlichtkeit und Wartbarkeit.
