Symfony (Framework)
Aus ArtisanCommerce Dokumentation
Symfony Framework
Symfony ist eines der einflussreichsten und stabilsten PHP-Frameworks weltweit. Es wird von SensioLabs entwickelt und folgt dem Model-View-Controller-Muster (MVC). Im Gegensatz zu vielen monolithischen Frameworks besteht Symfony aus über 50 eigenständigen Komponenten, die unabhängig voneinander genutzt werden können.
Kernkonzepte
- Komponenten-basiert: Viele bekannte Projekte (wie Laravel, Drupal oder Magento) nutzen einzelne Symfony-Komponenten (z. B. `symfony/http-foundation` oder `symfony/routing`), ohne das gesamte Framework zu verwenden.
- Dependency Injection (DI): Ein zentraler Service-Container verwaltet Abhängigkeiten, was den Code extrem modular, testbar und wartbar macht.
- Event-Dispatcher: Ein System, das es ermöglicht, auf bestimmte Ereignisse im Lebenszyklus einer Anfrage zu reagieren – essenziell für die Plugin-Systeme von Shopware und UVdesk.
Warum Shopware und UVdesk auf Symfony setzen
Systeme wie Shopware 6 und UVdesk nutzen Symfony als Fundament aus mehreren Gründen:
- Stabilität: Symfony folgt einem strikten Release-Zyklus mit langfristigem Support (LTS).
- Performance: Durch Caching-Mechanismen und optimiertes Routing ist es auch für große Datenmengen geeignet.
- Standardisierung: Entwickler, die Symfony beherrschen, finden sich in Shopware oder UVdesk sofort zurecht, da die Verzeichnisstruktur und die Konfiguration (YAML/PHP) identisch sind.
Aktuelle Features (v6 / v7)
- PHP 8.2+ Support: Konsequente Nutzung von Attributes (statt Annotations), Enums und Readonly-Klassen.
- AssetMapper: Eine moderne Art, JavaScript und CSS ohne die Komplexität von Webpack oder Vite zu verwalten.
- Scheduler-Komponente: Natives Handling von cron-basierten Aufgaben direkt im Framework.
- Runtime-Komponente: Ermöglicht es, Symfony-Apps ohne Code-Änderungen auf verschiedenen Laufzeiten (z. B. ReactPHP, Swoole oder klassischen Webservern) auszuführen.
Eignung
- Enterprise-Anwendungen: Komplexe Plattformen mit hohen Anforderungen an Business-Logik.
- E-Commerce & Helpdesks: Basis für skalierbare Shop-Lösungen und Ticket-Systeme.
- Microservices: Dank der "Symfony Console" und schlanken Konfigurationen ideal für spezialisierte Dienste.
