Verfallswarnungen nach dem Upgrade von Symfony 4.3.9 auf 4.4.1 / 5.0

12

Ich hatte eine heruntergekommene Symfony 3.4.9-Installation. Also habe ich die FW auf 4.1.1 aktualisiert. Jetzt habe ich 9 Verfallswarnungen erhalten, die alle aus Herstellerbibliotheken stammen:

  • Das Erstellen von Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy ohne Bekanntgabe der Nummer ist veraltet und wird in Doctrine ORM 3.0 entfernt.
  • Die Klasse "Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener" ist seit Symfony 4.4 veraltet. Verwenden Sie stattdessen "ErrorListener".
  • Die Doctrine \ Common \ Persistence \ Mapping \ AbstractClassMetadataFactory-Klasse ist seit Doctrine / Persistence 1.3 veraltet und wird in 2.0 entfernt. Verwenden Sie stattdessen \ Doctrine \ Persistence \ Mapping \ AbstractClassMetadataFactory.
  • Die Doctrine \ Common \ Persistence \ Mapping \ RuntimeReflectionService-Klasse ist seit Doctrine / Persistence 1.3 veraltet und wird in 2.0 entfernt. Verwenden Sie stattdessen \ Doctrine \ Persistence \ Mapping \ RuntimeReflectionService.
  • Die Klasse Doctrine \ Common \ Persistence \ ObjectManager ist seit Doctrine / Persistence 1.3 veraltet und wird in 2.0 entfernt. Verwenden Sie stattdessen \ Doctrine \ Persistence \ ObjectManager.
  • Die Klasse Doctrine \ Common \ Persistence \ ObjectRepository ist seit Doctrine / Persistence 1.3 veraltet und wird in 2.0 entfernt. Verwenden Sie stattdessen \ Doctrine \ Persistence \ ObjectRepository.
  • Die Doctrine \ Common \ PropertyChangedListener-Klasse ist seit Doctrine / Persistence 1.3 veraltet und wird in 2.0 entfernt. Verwenden Sie stattdessen \ Doctrine \ Persistence \ PropertyChangedListener.
  • Der Konfigurationsschlüssel "twig.exception_controller" ist in Symfony 4.4 veraltet. Setzen Sie ihn auf "null" und verwenden Sie stattdessen den Konfigurationsschlüssel "framework.error_controller". (x2)

Ist das "normal" oder gibt es Probleme in meiner Datei composer.json? Ich habe es doppelt überprüft und kann keine Abhängigkeit sehen, die eine "feste" Einstellung hat.

Ich habe sogar den vollständigen Anbieterordner gelöscht und erneut heruntergeladen, da ich dachte, es könnte noch "Müll" übrig sein, mit dem gleichen Ergebnis.

Meine composer.json-Datei:

{
    "type" : "project",
    "license" : "proprietary",
    "require" : {
        "php" : "^7.1.3",
        "ext-ctype" : "*",
        "ext-iconv" : "*",
        "sensio/framework-extra-bundle" : "^5.2",
        "symfony/apache-pack" : "^1.0",
        "symfony/asset" : "4.4.*",
        "symfony/console" : "4.4.*",
        "symfony/dotenv" : "4.4.*",
        "symfony/expression-language" : "4.4.*",
        "symfony/flex" : "^1.1",
        "symfony/form" : "4.4.*",
        "symfony/framework-bundle" : "4.4.*",
        "symfony/monolog-bundle" : "^3.1",
        "symfony/orm-pack" : "*",
        "symfony/process" : "4.4.*",
        "symfony/security-bundle" : "4.4.*",
        "symfony/serializer-pack" : "*",
        "symfony/swiftmailer-bundle" : "^3.1",
        "symfony/translation" : "4.4.*",
        "symfony/twig-bundle" : "4.4.*",
        "symfony/validator" : "4.4.*",
        "symfony/web-link" : "4.4.*",
        "symfony/webpack-encore-bundle" : "^1.1",
        "symfony/yaml" : "4.4.*"
    },
    "require-dev" : {
        "symfony/debug-pack" : "*",
        "symfony/maker-bundle" : "^1.0",
        "symfony/profiler-pack" : "^1.0",
        "symfony/test-pack" : "*",
        "symfony/web-server-bundle" : "4.4.*"
    },
    "config" : {
        "preferred-install" : {
            "*" : "dist"
        },
        "sort-packages" : true,
        "secure-http" : false
    },
    "autoload" : {
        "psr-4" : {
            "App\\" : "src/"
        }
    },
    "autoload-dev" : {
        "psr-4" : {
            "App\\Tests\\" : "tests/"
        },
        "classmap" : [
            "vendor/phpasn1"
        ]
    },
    "replace" : {
        "paragonie/random_compat" : "2.*",
        "symfony/polyfill-ctype" : "*",
        "symfony/polyfill-iconv" : "*",
        "symfony/polyfill-php71" : "*",
        "symfony/polyfill-php70" : "*",
        "symfony/polyfill-php56" : "*"
    },
    "conflict" : {
        "symfony/symfony" : "*"
    },
    "extra" : {
        "symfony" : {
            "allow-contrib" : false,
            "require" : "4.4.*"
        }
    }
}

BEARBEITEN

Ich habe installierte Pakete mit überprüft composer showund festgestellt, dass mindestens 2 der installierten Pakete für die obige Verfallsliste relevant sind:

(...)
doctrine/orm                        v2.7.0  Object-Relational-Mapper for PHP
doctrine/persistence                1.3.3   The Doctrine Persistence project is a set of shared...
(...)

Also habe ich die verfügbaren Versionen dieser Pakete überprüft composer info doctrine/persistence --allund festgestellt, dass die neueste Nicht-Entwickler-Version installiert wurde:

name     : doctrine/persistence
descrip. : The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.
keywords : mapper, object, odm, orm, persistence
versions : dev-master, 2.0.x-dev, 1.3.x-dev, * 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.x-dev, 1.2.0, 1.1.x-dev, 1.1.1, v1.1.0, 1.0.x-dev, v1.0.1, v1.0.0, dev-1.3.x-merge-up-into-master_5df35c38f354a9.94042071, dev-1.3.x-merge-up-into-master_5df33dc289ea03.65167777, dev-1.3.x-merge-up-into-master_5df29d964b0aa5.96685696, dev-github-funding, dev-master-old
(...)

Gleiches gilt für doctrine-orm.

Die GitHub-Site für Doktrin / Persistenz scheint dies ebenfalls zu bestätigen: https://github.com/doctrine/persistence/releases

Dies führt mich zu der Annahme, dass dies ein wirklich normales Verhalten ist und dass in Zukunft, wenn diese Pakete aktualisiert werden, die Verfallsmeldungen verschwinden.

Hinweis zur Lösung

Wie jeder, der die akzeptierte Antwort gelesen hat, bemerken wird, gibt es noch 5 Abwertungen, die noch nicht gelöst werden können. Ich werde eine Antwort ASA hinzufügen, es gibt eine Lösung dafür. Wenn jemand dies vor mir bemerkt, kann er gerne eine Antwort auf diese Frage hinzufügen. Vielen Dank.

Nelson Teixeira
quelle
Wenn sie aus Herstellerbibliotheken stammen und nicht aus Ihrem Code, ist dies normal. Sie sollten die betreffenden Anbieter aktualisieren und das Problem beheben. Beachten Sie, dass nicht alle Bibliotheken mit den neuesten Symfony- und Doctrine-Abwertungen auf dem neuesten Stand sind, sodass die Aktualisierung möglicherweise nicht sofort behoben werden kann.
tftd
Das Problem ist ... welche Anbieter? Es gibt mehrere Pakete für die Lehre und für den Zweig. AFAIU das sind die Beteiligten. Welche soll ich in json wählen? Ich habe gerade nachgesehen ... nur für das Doktrinpaket gibt es 33.
Nelson Teixeira
Der einfachste Weg, damit umzugehen, besteht darin, das Projekt im Entwicklungsmodus zu starten und einige Seiten in Ihrem Browser durchzugehen. In der Debug-Symbolleiste werden Ihnen Hinweise tracezur Ablehnung angezeigt. Mithilfe der Links können Sie die Stapelverfolgung und den genauen Punkt anzeigen, von dem sie stammen. :)
tftd
2
Die Dinge haben sich zwischen 4.3 und 4.4 geändert. Denken Sie daran, dass Sie nur die Verwerfungen bereinigen müssen, bevor Sie zu 5.x wechseln. Also pflügen Sie einfach durch und beheben Sie es wie jedes andere, obwohl das erste tatsächlich ein Doktrinenproblem ist und behoben werden kann mit: stackoverflow.com/questions/58975182/…
Cerad
1
Bitte löschen Sie die Frage nicht. Auch wenn nichts zu tun ist, außer auf Herstelleraktualisierungen zu warten. Ich bin über die Doctrine-Abwertung (ungefähr ObjectManager) hierher gekommen und es hat mir geholfen zu sehen, was los ist.
k00ni

Antworten:

3

Ok, ich konnte Folgendes beheben. Fühlen Sie sich frei, dies zu bearbeiten, wenn jemand weiß, wie man eines der anderen repariert.

1.) Von Cerad in den Kommentaren: Veraltet: Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy, ohne die Nummer darauf aufmerksam zu machen, ist veraltet

9.) Konfigurationsoption für Twig twig.exception_controller: https://github.com/symfony/symfony/blob/master/UPGRADE-4.4.md#twigbundle

2.) Der ExceptionListener wurde gelöscht, als ich die beiden oben genannten Punkte behoben habe, sodass ich nur noch 5 Abwertungen hatte


Schließlich scheinen die 5 verbleibenden bekannt zu sein und werden entsprechend behoben: Veraltete Klassenwarnungen in der Symfony 5.0.1-Konsole unter Windows

MEmerson
quelle
1
Hervorragend. Reduzierte auch meine Anzahl von Abschreibungen auf 5. Danke.
Nelson Teixeira
3

Wenn Sie die loswerden wollen Doctrine\Common\Persistence\*Abwertungen bis alles festgelegt ist, können Sie eine hinzufügen , "conflict": { "doctrine/persistence": "1.3.*" }um Ihre composer.jsonund Aufenthalt mit der Version 1.2. * Der Lehre / Ausdauer .

Damien Debin
quelle
2
Danke für die Info, aber ich habe lieber die Nachrichten, oder ich werde wahrscheinlich vergessen, dass ich das beheben muss. :)
Nelson Teixeira