Doppel-Release für das PHP Framework Symfony

Symfony 5 & Symfony 4.4 erscheinen zeitgleich: Das sind die neuen Features
Keine Kommentare

Symfony 4.4 und Symfony 5 sollen in den kommenden Tagen erscheinen. Wir haben mit Christian Flothmann, Software Developer bei SensioLabs über die beiden neuen Versionen gesprochen. Wir wollten wissen, welche neuen Features für ihn besonders interessant sind und was die Community nach Symfony 5 erwarten kann.

SensioLabs wird in den kommenden Tagen zwei neue Versionen des PHP Frameworks Symfony veröffentlichen. Geplant ist ein Doppel-Release der Versionen Symfony 4.4 und Symfony 5. Wir haben Christian Flothman, Software Developer bei SensioLabs zu den neuen Versionen befragt.

Symfony 4.4 bringt neue Features

Entwickler: Symfony 4.4 steht in den Startlöchern: Unter den zahlreichen neuen angekündigten Features, welches zählt zu deinem persönlichen Highlight?

Christian Flothmann: Ein einzelnes Feature herauszuheben fällt mir hier relativ schwer und würde vermutlich auch nicht der tollen Arbeit gerecht werden, die die gesamte Community in das neue Release gesteckt hat. Die Kategorie „Living on the Edge“ im Symfony-Blog bietet einen schönen Überblick und wird in den kommenden Wochen noch um weitere Artikel ergänzt. Freuen dürfen wir uns in jedem Fall darauf, dass die bislang als experimentell markierten Komponenten HttpClient, Mailer, Messenger und Mime jetzt als stable betrachtet werden. Das heißt, die weitere Entwicklung an diesen Komponenten wird wie bei allen weiteren Bestandteilen des Frameworks nun dem Backwards Compatibility Versprechen folgen.

Entwickler: Welche großen Neuerungen bzw. Änderungen erwartet die Entwickler*innen mit Symfony 4.4?

Christian Flothmann: Symfony 4.4 kommt wieder mit einer ganzen Reihe an Neuerungen. Insbesondere im Security-Bereich hat sich einiges getan. Beispielsweise wird es nun möglich sein, Umgebungsvariablen, die zur Konfiguration der Anwendung genutzt werden, kryptografisch zu verschlüsseln. Wird der in Symfony 4.3 eingeführte NativePasswordEncoder verwendet, wird automatisch der beste zur Verfügung stehende Algorithmus verwendet, um das Passwort der User zu hashen.

Insbesondere im Security-Bereich hat sich einiges getan.

Mit Symfony 4.4 ist die Security-Komponente nun auch in der Lage, das Passwort beim Login neu zu hashen, wenn ein besser Algorithmus verfügbar ist. Die Mailer-Komponente wiederum bietet nun Support für das Signieren und Verschlüsseln von E-Mails.

Auch in Sachen Kompatibilität hat sich einiges getan. Der HttplugClient (eine HTTP Client Implementierung auf Basis von HTTPlug) bietet jetzt auch Support für asynchrone HTTP-Requests. Die EventDispatcher Komponente ist jetzt kompatibel mit PSR-14.

Diese Liste ist natürlich nicht vollständig. Symfony 4.4 bringt viele weitere neue Funktionen, Deprecations und Verbesserungen der Developer Experience mit sich. Ein erster Eindruck hierüber bietet die Artikelserie „Living on the Edge“ im Symfony-Blog. Eine vollständige Liste lässt sich den Changelog-Dateien, die Bestandteil des Symfony-Quellcodes sind, entnehmen.

Symfony 5: Das sind die Neuerungen

Entwickler: Symfony 5 erscheint zeitgleich mit Symfony 4.4: Worauf kann sich die Community bei der kommenden Major-Version freuen?

Christian Flothmann: Symfony 5 wird zeitgleich mit Symfony 4.4 veröffentlicht und wird es der Entwickergemeinde ermöglichen, Anwendung reibungslos zu aktualisieren. In den vergangenen zwei Jahren, sind viele neue Features und Funktionen entwickelt worden. Ein nicht kleiner Teil dieser Neuentwicklungen hat dafür gesorgt, dass ältere Vorgehensweisen obsolet geworden sind. Aus Gründen der Abwärtskompatibilität sind die alten Mechanismen jedoch nicht direkt entfernt, sondern lediglich als deprecated gekennzeichnet worden, so dass Entwicklerinnen und Entwickler ausreichend Zeit haben, ihre Anwendungen entsprechend zu adaptieren. Mit Symfony 5 werden diese Features nun entfernt. Für existierende Anwendungen bedeutet dies, dass vor einem Upgrade sichgerstellt werden muss, dass keines der obsolten Feature mehr verwendet wird.

International PHP Conference

PHP in 2020: Fully Loaded

by Arne Blankerts (thePHP.cc)

PSR-14: A Major PHP Event

by Larry Garfield (Platform.sh)

Leaving a Legacy

by (PHPUnit, open source contributor)

Neu ist in diesem Jahr, dass anders als beim Release von Symfony 3.0 bzw. 4.0 (die praktisch „nur“ deprecation-freie Versionen von Symfony 2.8 bzw. 3.4 waren) mit den experimentellen String und Notifier Komponenten Symfony 5 neue Features veröffentlicht werden, die nicht Bestandteil von Symfony 4.4 sein werden.

Mit Multibyte-Zeichenketten zu arbeiten ist in PHP stets eine recht hakelige Angelegenheit. Die neue String Komponente schafft hier Abhilfe und bietet mit den Klassen ByteString, CodePointString und UnicodeString ein einheitliches objekt-orientiertes Interface für das Arbeiten mit Bytesequenzen, UTF-8 Codepoints sowie Grapheme Clusters. Shortcut-Funktionen erleichtern das Erzeugen von Zeichenketten-Objekten. Die Twig-Integration gelingt mit der neuen twig/string-extra Extension. Ein kleiner Abriss des technischen Hintergrunds und der API der neuen Komponente findet sich in der Dokumentation und in den Slides des Vortrages zur Ankündigung der neuen Komponente.

Benachrichtigungen aus einer Symfony Anwendung heraus zu versenden, war bislang nur mit etwas Eigenentwicklung möglich. Die neue Notifier Komponente ermöglicht nun den Versand von Notifications über unterschiedliche Kanäle über ein einheitliches Interface. In Symfony 5.0 gehören Nexmo, Slack, Telegram und Twilio zu den unterstützten Diensten.

Symfony 5, und dann?

Entwickler: Wie geht es nach Symfony 5 weiter?

Christian Flothmann: Die 4.x Entwicklungsreihe wird mit dem Release von Symfony 4.4 abgeschlossen sein. Unserem Release-Zyklus folgend werden wir jeweils in einem Abstand von sechs Monaten die Releases 5.1 (Mai 2020) bis 5.4 (November 2022) bekommen. Symfony 5.4 wird wieder zeitgleich mit der nächsten Major-Version veröffentlicht werden und als LTS-Release wieder drei Jahre lang Bugfix-Support erhalten. Eine wichtige Neuerung betrifft die regulären Releases 5.0 bis 5.3, die über acht Monate mit Bugfixes versorgt werden. Bis einschließlich Symfony 4.3 wurden reguläre Releases bislang mit insgesamt 14 Monaten Security-Fixes versorgt. Dieser Zeitraum wird in Zukunft reduziert und endet ebenfalls nach acht Monaten.

Ein wichtiger Fokus der Entwicklung wird sicherlich auf der Stabilisierung der neuen experimentellen String und Notifier Komponenten liegen. Durch ihren experimentellen Status können für beide Komponenten bei Upgrades auf Symfony 5.1 BC Breaks zu erwarten sein. Hier wird die Community einen Blick in die Changelog-Dateien werfen müssen. Für alle übrigen Komponenten gilt selbstverständlich das Backwards Compatibility Versprechen, was bedeutet, dass in Minor-Releases keine BC Breaks vorgenommen und obsolete Features lediglich als deprecated gekennzeichnet werden.

Ein wichtiger Fokus der Entwicklung wird sicherlich auf der Stabilisierung der neuen experimentellen String und Notifier Komponenten liegen

Einen Ausblick auf darüber hinausgehende zukünftige Features zu geben, ist naturgemäß nicht so einfach. Symfony folgt einem zeitbasierten Release-Modell ohne feste Roadmap. Dementsprechend lässt sich aktuell nur verbindlich über den Releasezeitraum, nicht aber über dessen Umfang sprechen. Ein wesentlicher Faktor wird hier auch in Zukunft weiterhin das Feedback der Community. Selbstverständlich sind alle Nutzerinnen und Nutzer an dieser Stelle wieder eingeladen, sich selbst einzubringen, sei es durch Feedback und/oder Contributions zum Code. Sobald die ersten Features gemergt sind, wird es dann auch nicht lange bis zur Veröffentlichung der ersten Blog-Beiträgen in der „Living on the Edge„-Kategorie für Symfony 5.1 dauern.

Warum gerade Symfony?

Entwickler: Da ist ja demnächst noch einiges von Symfony zu erwarten. Doch was zeichnet Symfony im Vergleich zu anderen PHP-Frameworks aus?

Christian Flothmann: Eine der großen Stärken Symfonys ist in meinen Augen das Entwicklungs- und Releasemodell, dass Nutzerinnen und Nutzern Kontinuität und Planbarkeit liefert. Halbjährlich (im Mai und November) gibt es Minor-Releases, welche neue Features bereitstellen. In Minor-Releases werden niemals Features entfernt, ein Update kann somit in der Regel ohne Probleme durchgeführt werden. Vier dieser Releases (x.0 bis x.3) sind sogenannte Standard-Releases. Sie werden acht Monate lang mit Bugfixes versorgt.

Eine der großen Stärken Symfonys ist in meinen Augen das Entwicklungs- und Releasemodell

Das letzte Release (Version x.4) für einen Entwicklungszweig ist stets ein Long Term Support-Release, welches für insgesamt drei Jahre mit Bugfixes und weitere zwei Jahre mit Security-Patches versorgt wird. Zeitgleich mit einem LTS-Release wird das erste Minor-Release des nächst höheren Entwicklungszweiges veröffentlicht (beispielsweise in diesem Herbst Symfony 5.0 zeitgleich mit 4.4), in dem dann tatsächlich auch Features, die in den Releases zuvor als deprecated gekennzeichnet wurden, entfernt werden.

Jede Entwicklerin und jeder Entwickler kann sich auf diese Zeiten verlassen und so selbst für sich den passenden Zeitraum für Updates finden und sich kontinuierlich auf das Upgrade zur nächsten Major-Version vorbereiten, indem beispielsweise als deprecated markierte Funktionen ausgetauscht werden.

Entwickler: Vielen Dank für das Interview!

Im Interview: Christian Flothmann (Software Developer, SensioLabs)
Christian Flothmann arbeitet als Software Developer für SensioLabs und unterstützt dort unter anderem Entwicklungsteams in Migrationsprojekten. Als Mitglied des Symfony Core Teams und regelmäßiger Contributor im Symfony-Ökosystem ist er aktiv an der Weiterentwicklung des Frameworks beteiligt.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -