Symfony ist ein PHP-Framework, das Fabien Potencier und seine Firma SensioLabs 2005 veröffentlicht haben. Es besteht aus einzelnen Komponenten, die sich auch ohne das Framework nutzen lassen, und bildet damit das Fundament vieler anderer PHP-Systeme.
- Symfony
Ein PHP-Framework aus wiederverwendbaren Komponenten für Routing, Formulare, Konsole, Sicherheit und mehr.
Beispiel: „Der Shop läuft auf Shopware und damit unter der Haube auf Symfony.“Verwandt: Twig, die Template-Sprache aus dem Umfeld von Symfony.
Abgrenzung zu Laravel: Laravel nutzt Symfony-Komponenten und legt eine Schicht mit eigenen Konventionen darüber. Symfony lässt mehr offen und verlangt dafür mehr Konfiguration.
Symfony als Baukasten
Die Komponenten sind eigenständige Pakete, die sich über Composer einbinden lassen: HttpFoundation für Anfragen und Antworten, Console für Kommandozeilenwerkzeuge, Mailer, Validator und viele mehr.
Deshalb steckt Symfony in Systemen, die nicht so heißen. Drupal, Shopware und Laravel nutzen Teile davon, und auch TYPO3 greift für einige Aufgaben auf Symfony-Komponenten zurück.
Wofür Symfony gut ist
Für große, langlebige Anwendungen mit vielen Entwicklern. Symfony setzt auf ausdrückliche Konfiguration und Dependency Injection, was bei kleinen Projekten nach Umweg aussieht und bei großen für Übersicht sorgt.
Die letzte Unterversion jeder Hauptversion, etwa 6.4 oder 7.4, erhält eine Langzeitunterstützung über mehrere Jahre. Für Unternehmen, die nicht ständig aktualisieren wollen, ist das ein gewichtiges Argument.
Wie Symfony und Laravel zusammenhängen
Enger, als die Konkurrenz vermuten lässt. Ein großer Teil von Laravel läuft auf Symfony-Komponenten, und Verbesserungen an diesen Komponenten kommen beiden zugute.
Wer mit Laravel arbeitet, nutzt Symfony also täglich mit, meist ohne es zu merken. Fehlermeldungen aus der Tiefe einer Laravel-Anwendung verweisen deshalb oft auf Klassen im Namensraum Symfony.