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 einer Loginfunktion mit differenzierten Benutzerrechten.

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 dass Anpassungen im Quellcode Ihres eigenen Symfony-basierten 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 entsprechender Anpassungsbedarf in Ihrem System entsteht.

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 viele andere eingebundene Softwaremodule, "Bibliotheken" (libraries) oder "Abhängigkeiten" (dependencies) genannt. Auch hierfür kann es erforderlich werden, dass Ihr System an einigen Stellen angepasst wird.

Alle nötigen Anpassungen nehmen wir im Rahmen des Updates für Sie vor. Es kann sich dabei um Anpassungen der Konfiguration handeln oder Anpassungen im Quellcode selbst.

Zum Beispiel mussten spätestens für das Update von Symfony 6 auf Symfony 7 alle Anweisungen, die bisher über eine Technik namens "Annotations" vorgenommen wurden, auf eine neue Technik namens "Attributes" umgestellt werden. Im Ergebnis tun beide Techniken das Gleiche: mit ihrer Hilfe können Konfigurationsanweisungen direkt im Quellcode hinterlegt werden.

Ein Beispiel für eine Annotation:

/**
 * @Route("/path", name="action")
 */

Und die gleiche Anweisung als Attribute:

#[Route('/path', name: 'action')]

Annotations brauchen zum Funktionieren eine zusätzliche Bibliothek, die diese Konfigurationsanweisungen aus dem Quellcode extrahiert. Attributes hingegen sind eine Funktion, die in die Programmiersprache PHP seit Version 8 fest integriert ist (ein language feature). Daher sind sie wesentlich schneller. Codestellen wie das obige Beispiel existieren in einem System in sehr großer Zahl, entsprechend umfangreich sind die Anpassungen – und die Umstellung kann nur teilweise automatisiert werden. Dafür steigt die Geschwindigkeit des Systems und die zusätzliche Bibliothek kann entfallen, was den zukünftigen Wartungsaufwand verringert.

Auf der Website von Symfony finden Sie, wenn Sie sich für die technischen Details bei einem Symfony-Update interessieren, eine allgemeine Empfehlung zur Vorgehensweise bei Updates (Englisch).

Im Anschluss an die eigentlichen Updates führen wir noch eine umfangreiche Qualitätssicherung durch, 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-Entwicklungsteam 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 Reaktionen auf Ereignisse in anderen Systemen steuern. (Ein Webhook ist eine Art webbasierte Benachrichtigungsfunktion, mit der Ihr System andere Systeme von bestimmten Ereignissen informieren kann – zum Beispiel, dass ein neuer Beitrag veröffentlicht wurde oder dass eine neue Nutzerin oder ein neuer Nutzer sich registriert hat. Ein RemoteEvent ist das technische Gegenstück zum Webhook auf der anderen Seite, also im empfangenden System.)

  • 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-Entwicklungsteam 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.

Kann man mehrere Versionssprünge zu einem Update kombinieren?

Häufig werden wir gefragt, ob man direkt mehrere Versionssprünge in einem Update machen kann, also z. B. von Version 5 auf Version 7 springen, und dadurch Kosten sparen.

Das ist nicht der Fall, da die Änderungen, die im Code erforderlich sind, sich aufaddieren. Es müssen also die Änderungen des Sprungs von 5 auf 6 vorgenommen werden und dann zusätzlich die Änderungen von 6 auf 7. Da in zwei Versionen nie die gleichen Änderungen nötig sind, kann man durch die Zusammenfassung nicht abkürzen, sondern muss alle Änderungen einzeln erledigen.

Lediglich bei der abschließenden Qualitätssicherung bietet sich eine Einsparmöglichkeit, wenn diese nur einmal für das Doppelupdate erfolgt. Das bringt allerdings einen Nachteil mit sich: Wenn wir in dieser Phase Fehler entdecken, wissen wir nicht, aus welchem Versionssprung diese stammen, und müssen entsprechend länger nach der Ursache suchen.

Wieso sind frühe Updates kostengünstiger?

Wenn Symfony-Updates also grundsätzlich sequenziell abgearbeitet werden müssen und eine Zusammenfassung mehrerer Versionssprünge keinen Kostenvorteil bringt, sind im Umkehrschluss getrennte Updates für jede Major-Version nicht teurer als zusammengefasste.

Vor diesem Hintergrund ergibt sich ein klarer Kostenvorteil früher Updates aus der frühen Entdeckung der oben 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 weitere 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. 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.

Was muss ich tun, um regelmäßige Symfony-Updates zu bekommen?

Gerne behalten wir für Sie im Blick, wann ein Symfony-Update ansteht, und informieren Sie entsprechend. Auf Wunsch können wir die Updates auch im Rahmen einer Aktualitätsgarantie regelmäßig unaufgefordert für Sie vornehmen. Wenn Sie daran Interesse haben, sprechen Sie uns gerne an.

Übrigens: Welche Symfony-Versionen gerade aktuell sind und wann die nächste Version erscheint, erfahren Sie stets aktuell auf symfony.com/releases.

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