© Allies Interactive/Shutterstock.com
Cloud Compendium
Erweiterte Anleitung zur Migration auf die neue Symfony-Flex-Struktur

Die Flex für Symfony 4

Jedes Symfony-Projekt wird früher oder später auf die neue Symfony-Flex-Struktur angepasst. Hier und da kann einem die vorgegebene Upgradeanleitung in der Dokumentation etwas zu dünn erscheinen. Oftmals kommt es auf die Details an, die einem den Umstieg auf die neue Symfony-Flex-Struktur erleichtern können.

Andreas Allacher


Als Symfony-Entwickler kommt einem die Dokumentation zum Upgrade auf Flex schnell mal zwischen die Finger. Jedoch ist diese sehr allgemein gehalten und geht (meiner Meinung nach) nicht auf diverse Details ein.Grundsätzliches VorgehenBevor man mit dem Upgrade von Symfony 3.x auf >= 4.2 beginnt, sollte man folgende Dateien (sofern vorhanden) sichern: .env .env.dist bin/console weitere modifizierte oder selbst erstellte Dateien im Ordner bin Zusätzlich sollte das Verzeichnis src vor dem Update in src-bundles umbenannt werden, denn diese müssen später unter anderem in eine entsprechend neue Struktur im src-Verzeichnis gebracht werden – hier stört der alte Inhalt beim Update.Anpassungen in „composer.json“Um Symfony zu aktualisieren, sind die folgenden Änderungen in composer.json durchzuführen: Falls Incenteev/ParameterHandler installiert ist, ist dieser zu entfernen, da für die Konfiguration jetzt .env-Dateien beziehungsweise Umgebungsvariablen verwendet werden und nicht mehr das parameters.yml. Dazu zählen das Entfernen von incenteev/composer-parameter-handler in require und require-dev-Sektionen, das Entfernen aller Vorkommnisse von Incenteev\\ParameterHandler\\ScriptHandler::buildParameters in der scripts-Sektion und das Entfernen der alten scripts-Einträge, die mit Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler:: beginnen; hier kommt stattdessen auto-scripts zum Einsatz. Neue Einträge in scripts erstellen (Listing 1); bei diesem Schritt sind eventuell eigene Skripte zu ergänzen. Nach dem Upgrade von Symfony sieht das dann z. B. wie in Listing 2 aus. Hiermit kann man in auto-scripts weitere Symfony-Befehle ähnlich wie diese ergänzen bzw. bei assets:install definieren, ob man Kopien der Dateien oder Symlinks verwenden will. In der extra-Sektion müssen die Parameter, die mit symfony- beginnen, entfernt werden. Falls man nach dem Update die Struktur ändern will, kann man sich an die Dokumentation halten [1]. Zusätzlich sollte man die Inhalte aus Listing 3 in der extra-Sektion ergänzen: require definiert hierbei, welche Version für die Symfony-Komponenten zum Einsatz kommt. allow-contrib definiert, dass Symfony Flex Recipes nicht nur für die offiziellen Symfony-Komponenten, sondern auch für solche anderer Bundles verwendet werden (eine Übersicht, welche das sind, findet man auf GitHub [2]). Ist dies nicht gewünscht, muss hier false eingesetzt werden (Listing 3). Es empfiehlt sich, diesen Wert ...

Cloud Compendium
Erweiterte Anleitung zur Migration auf die neue Symfony-Flex-Struktur

Die Flex für Symfony 4

Jedes Symfony-Projekt wird früher oder später auf die neue Symfony-Flex-Struktur angepasst. Hier und da kann einem die vorgegebene Upgradeanleitung in der Dokumentation etwas zu dünn erscheinen. Oftmals kommt es auf die Details an, die einem den Umstieg auf die neue Symfony-Flex-Struktur erleichtern können.

Andreas Allacher


Als Symfony-Entwickler kommt einem die Dokumentation zum Upgrade auf Flex schnell mal zwischen die Finger. Jedoch ist diese sehr allgemein gehalten und geht (meiner Meinung nach) nicht auf diverse Details ein.Grundsätzliches VorgehenBevor man mit dem Upgrade von Symfony 3.x auf >= 4.2 beginnt, sollte man folgende Dateien (sofern vorhanden) sichern: .env .env.dist bin/console weitere modifizierte oder selbst erstellte Dateien im Ordner bin Zusätzlich sollte das Verzeichnis src vor dem Update in src-bundles umbenannt werden, denn diese müssen später unter anderem in eine entsprechend neue Struktur im src-Verzeichnis gebracht werden – hier stört der alte Inhalt beim Update.Anpassungen in „composer.json“Um Symfony zu aktualisieren, sind die folgenden Änderungen in composer.json durchzuführen: Falls Incenteev/ParameterHandler installiert ist, ist dieser zu entfernen, da für die Konfiguration jetzt .env-Dateien beziehungsweise Umgebungsvariablen verwendet werden und nicht mehr das parameters.yml. Dazu zählen das Entfernen von incenteev/composer-parameter-handler in require und require-dev-Sektionen, das Entfernen aller Vorkommnisse von Incenteev\\ParameterHandler\\ScriptHandler::buildParameters in der scripts-Sektion und das Entfernen der alten scripts-Einträge, die mit Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler:: beginnen; hier kommt stattdessen auto-scripts zum Einsatz. Neue Einträge in scripts erstellen (Listing 1); bei diesem Schritt sind eventuell eigene Skripte zu ergänzen. Nach dem Upgrade von Symfony sieht das dann z. B. wie in Listing 2 aus. Hiermit kann man in auto-scripts weitere Symfony-Befehle ähnlich wie diese ergänzen bzw. bei assets:install definieren, ob man Kopien der Dateien oder Symlinks verwenden will. In der extra-Sektion müssen die Parameter, die mit symfony- beginnen, entfernt werden. Falls man nach dem Update die Struktur ändern will, kann man sich an die Dokumentation halten [1]. Zusätzlich sollte man die Inhalte aus Listing 3 in der extra-Sektion ergänzen: require definiert hierbei, welche Version für die Symfony-Komponenten zum Einsatz kommt. allow-contrib definiert, dass Symfony Flex Recipes nicht nur für die offiziellen Symfony-Komponenten, sondern auch für solche anderer Bundles verwendet werden (eine Übersicht, welche das sind, findet man auf GitHub [2]). Ist dies nicht gewünscht, muss hier false eingesetzt werden (Listing 3). Es empfiehlt sich, diesen Wert ...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang