{"id":1618,"date":"2024-11-14T15:16:06","date_gmt":"2024-11-14T14:16:06","guid":{"rendered":"https:\/\/wiki.ad-libitum.info\/?page_id=1618"},"modified":"2026-08-12T09:32:44","modified_gmt":"2026-08-12T07:32:44","slug":"updaten-2","status":"publish","type":"page","link":"https:\/\/wiki.ad-libitum.info\/?page_id=1618","title":{"rendered":"Updaten"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Eine allgemeine <a href=\"https:\/\/symfony.com\/doc\/current\/setup\/upgrade_major.html\" target=\"_blank\" rel=\"noreferrer noopener\">Anleitung<\/a> von Symfony.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Achtung<\/strong>: alle genannten Befehle in der Shell ausf\u00fchren, nicht im Verzeichnis. Also <code>ddev ssh<\/code> starten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Falls in der upzudatenenden Version von <code><strong>sensio\/frameworks-extra-bundle<\/strong><\/code> verwendet wird, dieses mit <code>composer remove sensio\/frameworks-extra-bundle<\/code> entfernen da es nicht mehr gepflegt wird und die Funktionalit\u00e4t im Core von Symfony bzw. PHP enthalten ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein guter Ausgangspunkt ist immer, zuerst <code>composer update<\/code> auszuf\u00fchren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mit Hilfe des Rectors kann der Code analysiert und zum Teil automatisch an die neue Version angepasst werden: <code>composer require rector\/rector --dev<\/code> &#8211; Recipe ausf\u00fchren Nach der Installation m\u00fcssen in der <code>rector.php<\/code> im Projektroot noch Anpassungen vorgenommen werden &#8211; diese wird erzeugt, wenn der Rector zum ersten Mal gestartet wird. Die \u00c4nderungen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">den Kommentar bei <code>->withPhpSets()<\/code> entfernen und<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>->withAttributesSets(\n    symfony: true,\n    doctrine: true,\n)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">einf\u00fcgen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In der <code>composer.json<\/code> unter <code>config<\/code> folgendes einf\u00fcgen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>\"platform\": {\n    \"php\": \"8.3.10\"\n}<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Auch hier wieder auf die korrekte Version achten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann, wenn noch nicht vorhanden, den Schl\u00fcssel <code>extra:<\/code> mit folgendem Inhalt einf\u00fcgen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>\"extra\": {\n    <span style=\"background-color: initial; font-family: inherit; text-align: initial;\">\"symfony\": {<\/span><code><span style=\"background-color: initial; font-family: inherit; text-align: initial;\">        \"allow-contrib\": false,<\/span><\/code><code><span style=\"background-color: initial; font-family: inherit; text-align: initial;\">        \"require\": \"5.3.*\"<\/span><\/code><code><span style=\"background-color: initial; font-family: inherit; text-align: initial;\">    }<\/span><\/code>},<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Version bei <code>require:<\/code> muss der gew\u00fcnschten Version von Symfony entsprechen. Damit einhergehend m\u00fcssen dann auch alle vorhandenen Versionen von Symfonymodulen von der bisher eingetragenen Version auf die gew\u00fcnschte Version ge\u00e4ndert werden. Das d\u00fcrfte in den meisten F\u00e4llen der Symfony-Version entsprechen.  Sowohl unter <code>require:<\/code> als auch unter <code>require-dev:<\/code>. Aber nur an den Stellen, wo die Versionsnummer wirklich mit der Symfonyversion \u00fcbereinstimmt. Vor allem bei irgendwelchen Bundles werden die bestehenden Versionsnummern belassen. Die aktuellen Versionen lassen sich beim <a href=\"https:\/\/packagist.org\" target=\"_blank\" rel=\"noreferrer noopener\">Packagist<\/a> abrufen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann kann <code>composer update<\/code> gestartet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aufgerufen wird der Rector \u00fcber <code>vendor\/bin\/rector<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die von Rector vorgenommenen \u00c4nderungen pr\u00fcfen und nicht blind \u00fcbernehmen. Vor allem bei IsGranted aufpassen, dass die richtige Bibliothek verwendet wird: <code>Symfony\\Component\\Security\\Http\\Attribute\\IsGranted<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>composer recipes:update<\/code> ausf\u00fchren. Anschlie\u00dfend mit <code>git status<\/code> pr\u00fcfen was passiert ist. Insbesondere bei Meldungen <code>both modified:<\/code> aufpassen und in PhpStorm \u00fcber Rechtsklick auf die Datei und <code>Git \/ Resolve Conflicts...<\/code> entscheiden, welche \u00c4nderung \u00fcbernommen werden soll.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In der <code>composer.json<\/code> unter <code>extra:symfony:require<\/code> die gew\u00fcnschte Version eintragen und in <code>require:php<\/code> auf die richtige Version achten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann mit composer update ein Update versuchen. Bei Fehlermeldungen am besten von hinten her versuchen, die fehlerhaften Bibliotheken separat updzudaten: <code>composer update bibliothek #.#<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oft hilft es auch, in der <code>composer.json<\/code> die meuternden Bibliotheken von Hand auf die n\u00e4chste Version zu setzen und dann <code>composer update<\/code> aufzurufen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine allgemeine Anleitung von Symfony. Achtung: alle genannten Befehle in der Shell ausf\u00fchren, nicht im Verzeichnis. Also ddev ssh starten. Falls in der upzudatenenden Version von sensio\/frameworks-extra-bundle verwendet wird, dieses mit composer remove sensio\/frameworks-extra-bundle entfernen da es nicht mehr gepflegt wird und die Funktionalit\u00e4t im Core von Symfony bzw. PHP enthalten ist. Ein guter Ausgangspunkt [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1618","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wiki.ad-libitum.info\/index.php?rest_route=\/wp\/v2\/pages\/1618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiki.ad-libitum.info\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wiki.ad-libitum.info\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.ad-libitum.info\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.ad-libitum.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1618"}],"version-history":[{"count":28,"href":"https:\/\/wiki.ad-libitum.info\/index.php?rest_route=\/wp\/v2\/pages\/1618\/revisions"}],"predecessor-version":[{"id":1882,"href":"https:\/\/wiki.ad-libitum.info\/index.php?rest_route=\/wp\/v2\/pages\/1618\/revisions\/1882"}],"wp:attachment":[{"href":"https:\/\/wiki.ad-libitum.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}