Symfony-Updates für Ihre Website: Warum sind sie wichtig?

Wir empfehlen unseren Kunden, den Code ihrer Website oder Webanwendung regelmäßig und früh auf die neuesten Symfony-Versionen zu aktualisieren. Das verbessert die Sicherheit und eröffnet neue Entwicklungsmöglichkeiten – und es spart sogar Geld.

Artikel von: Sebastian
Veröffentlicht am: 2024-10-17

In diesem Beitrag

Was bedeutet das, ein Symfony-Update?

Die meisten von uns entwickelten Websites und Webanwendungen (im Folgenden einheitlich als "System" bezeichnet) basieren heute auf dem Open Source-Framework Symfony. Symfony stellt eine Vielzahl von Komponenten zur vereinfachten Entwicklung von Websites und Webapplikationen zur Verfügung. Dazu gehören Komponenten zur Verarbeitung von Formulareingaben, Entwicklung von HTML-Templates oder zum Aufbau von Benutzer-Rechtesystemen innerhalb eines Systems.

Das Symfony-Framework wird laufend weiterentwickelt. Diese Weiterentwicklungen werden seit über 10 Jahren nach einem festen, planbaren Rhythmus veröffentlicht. Im Detail haben wir das in unserem Blogpost "Up-to-date bleiben" beschrieben.

Alle zwei Jahre im November erscheint eine neue Major-Version, danach jedes halbe Jahr eine Minor-Version.

Die Minor-Versionen fügen neue Features und Funktionalitäten hinzu, sind aber vollständig kompatibel mit der Vorversion. Sie können also einfach installiert werden, ohne das Anpassungen im Quellcode Ihres eigenen Symfony-basierenden Systems erforderlich sind. Der Aufwand für diese Updates ist daher sehr gering.

Anders sieht es bei den Major-Versionen aus: Hier werden größere Neuerungen eingeführt, durch die Anpassungsbedarf in Ihrem System entsteht. Für die Aktualisierung Ihres Systems auf eine neue Major-Version entsteht also Anpassungsaufwand, üblicherweise in der Höhe von mehreren Personentagen (T-Shirt-Größe [L] oder [XL]).

Wenn wir Ihr System auf eine neue Major-Version von Symfony aktualisieren, umfasst das nicht nur Aktualisierungen von Symfony selbst. Zusätzlich aktualisieren wir auch vielen andere eingebundene Softwaremodule, auch "Bibliotheken" oder "Abhängigkeiten" genannt. Hierdurch kann weiterer Anpassungsbedarf in Ihrem System entstehen.

Die nötigen Anpassungen nehmen wir im Rahmen des Updates für Sie vor, um Kompatibilität mit der neuen Symfony-Version herzustellen. Es kann sich dabei um Anpassungen der Konfiguration handeln oder Anpassungen im Quellcode selbst – zum Beispiel müssen für das Update von Symfony 6 auf Symfony 7 Anweisungen, die über Annotations vorgenommen wurden, auf Attributes umgestellt werden. Das verbessert die Performance des Systems, erfordert aber auch umfangreiche Codeänderungen, die nur teilweise automatisiert werden können. Im Gegenzug entfällt eine Abhängigkeit, was den zukünftigen Wartungsaufwand verringert. Auf der Website von Symfony finden Sie, wenn Sie sich für die technischen Details interessieren, eine Empfehlung für Entwickler zum Vorgehen bei Updates (Englisch).

Im Anschluss an die eigentlichen Updates nehmen wir noch eine umfangreiche Qualitätssicherung vor, z. B. einen vollständigen Vorher-Nachher-Vergleich der gesamten Website, um sicherzugehen, dass durch den Umstieg auf die neue Symfony-Version keine Fehler im System auftreten.

Welche Vorteile bringen neue Symfony-Versionen?

Der wichtigste Vorteil, den Sie durch ein Symfony-Update gewinnen, ist die Gewährleistung der Betriebssicherheit: Das Symfony-Entwicklerteam sorgt für fünf Jahre ab Erscheinen einer neuen Major-Version für Bugfixes auf dieser Versionslinie. Noch ein Jahr länger, also insgesamt sechs Jahre lang, werden Updates zur Schließung von Sicherheitslücken bereitgestellt. In diesem Zeitraum wird auch die Kompatibilität mit neuen PHP-Versionen gewährleistet.

Neue Symfony-Versionen bringen häufig auch Performanceverbesserungen mit sich, wodurch die Seitenabrufe schneller werden oder mit weniger Rechenleistung auskommen.

Last but not least kommen in neuen Symfony-Versionen zusätzliche Funktionalitäten hinzu, zum Beispiel neue Module, mit denen bestimmte Aufgaben effizienter und schneller als früher umgesetzt werden können. In der aktuellen Major-Version Symfony 7 waren das beispielsweise

  • Eine Scheduler-Komponente, die Ereignisse auf Basis eines vordefinierten Zeitplans auslösen kann

  • Die Komponenten Webhook und RemoteEvent, mit denen man Webhooks anbieten kann und die Reaktion auf Ereignisse in anderen Systemen steuern

  • Ein HtmlSanitizer, der dabei unterstützt, validen und sicheren HTML-Quellcode zu erzeugen

  • Eine Uhr-Komponente, mit deren Hilfe man zeitabhängigen Code besser automatisiert testen kann.

Auf diese neuen Komponenten können wir dann bei der Weiterentwicklung Ihres Systems zurückgreifen.

Kann ich auf die Updates auch verzichten?

Ein Verzicht ist eine gewisse Zeit lang möglich. Für jede Hauptversion von Symfony gibt es als letzte Minor-Version ein "Long Term Support"-Release, das drei Jahre lang Bugfixes bekommt und vier Jahre lang Fixes für Sicherheitslücken. Nach Ablauf dieser Zeit würden Sicherheitslücken, die im Framework entdeckt werden, nicht mehr behoben und wären schlimmstenfalls ein Einfallstor für Hackerangriffe.

Zudem ist jede Symfony-Version auch nur mit bestimmten Versionen der zugrundeliegenden Programmiersprache PHP kompatibel. Jede PHP-Version wird aber nur eine bestimmte Zeit lang durch aktuelle Versionen des Server-Betriebssystems Linux unterstützt. Wenn im Rahmen des Hostings eine Aktualisierung des Server-Betriebssystems und damit ein Wechsel der PHP-Version erfolgt, können Websites und Webanwendungen, die nicht mit der neuen PHP-Version kompatibel sind, nicht weiter betrieben werden.

Warum ist es sinnvoll, möglichst früh auf neue Versionen von Symfony zu aktualisieren?

Wir empfehlen, jeweils so früh wie möglich auf neueste Major-Version und die darauf folgenden Minor-Versionen zu aktualisieren.

Dadurch steht der Nutzen der neuen Version – in Form der oben beschriebenen Vorteile – früher zur Verfügung.

Ein weiterer wichtiger Aspekt: Teilweise werden in neuen Minor-Versionen Änderungen vorgenommen, die unerwartete Kompatibilitätsprobleme mit Ihrem System aufweisen. In solchen Fällen ist es uns häufig gelungen, beim Symfony-Entwicklerteam zu erreichen, dass diese Änderungen zurückgenommen werden, weil sie das Kompatibilitätsversprechen brechen. Wenn diese Kompatiblitätsprobleme hingegen erst spät auffallen, ist eine Rücknahme in Symfony nicht mehr möglich, sondern es bleibt nur die Möglichkeit, aufwändig den Quellcode Ihres Systems anzupassen, um die Kompatibilität wieder herzustellen.

Wieso sind frühe Updates kostengünstiger?

Symfony-Updates müssen grundsätzlich sequenziell abgearbeitet werden, es kann keine Version übersprungen werden. Eine Zusammenfassung mehrerer Versionssprünge (z. B. von 5 auf 7) bringt damit keinen Kostenvorteil, im Umkehrschluss sind getrennte Updates für jede Major-Version nicht teurer als zusammengefasste.

Ein Kostenvorteil früher Updates ergibt sich aus der frühen Entdeckung der im vorherigen Abschnitt beschriebenen unerwarteten Kompatibilitätsprobleme. Können diese noch im Symfony-Framework behoben werden, reduziert das den Aufwand für die Herstellung der Kompatibilität mitunter erheblich.

Eine weiterer Ersparnis ergibt sich aus der Verfügbarkeit der neuen Features. Häufig können bestimmte Anforderungen mithilfe der in einer neuen Symfony-Version hinzugefügten Komponenten leichter und damit kostengünstiger realisiert werden als in früheren Symfony-Versionen.

Last but not least: Das Wissen in unserem Team über die genaue Vorgehensweise, die Fallstricke und Lösungsmöglichkeiten bei einem bestimmten Versionssprung ist bei einem frühen Wechsel auf die neue Symfony-Version noch frisch und gerät dann in Vergessenheit. Eine sechs Jahre alte Symfony-Version auf eine vier Jahre alte Version zu aktualisieren, erfordert eine neue Einarbeitung in die Besonderheiten dieses Updates und ist damit automatisch teurer, als wenn das Update vor vier Jahren erfolgt wäre.

Sie sind noch kein webfactory-Kunde und interessieren sich für unsere Arbeit? Erfahren Sie mehr über unsere Leistungen als Symfony Agentur.

Interesse geweckt?

Wir hören gerne zu, wenn Sie Fragen oder Anmerkungen zu diesem Thema haben. Und wenn Sie ein Projekt, ein Produkt, ein Problem oder eine Idee mit uns besprechen möchten, freuen wir uns erst recht über ein Gespräch!

Kontakt aufnehmen