Avertissements de dépréciation après la mise à niveau de Symfony 4.3.9 vers 4.4.1 / 5.0

12

J'ai eu une installation Symfony 3.4.9 sans dépréciation. J'ai donc mis à jour le FW vers 4.1.1. Maintenant, j'ai reçu 9 avertissements de dépréciation provenant tous des bibliothèques des fournisseurs:

  • La création de Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy sans le rendre conscient du numéro est déconseillée et sera supprimée dans Doctrine ORM 3.0.
  • La classe "Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener" est obsolète depuis Symfony 4.4, utilisez plutôt "ErrorListener".
  • La classe Doctrine \ Common \ Persistence \ Mapping \ AbstractClassMetadataFactory est obsolète depuis doctrine / persistence 1.3 et sera supprimée dans 2.0. Utilisez plutôt \ Doctrine \ Persistence \ Mapping \ AbstractClassMetadataFactory.
  • La classe Doctrine \ Common \ Persistence \ Mapping \ RuntimeReflectionService est obsolète depuis doctrine / persistence 1.3 et sera supprimée dans 2.0. Utilisez plutôt \ Doctrine \ Persistence \ Mapping \ RuntimeReflectionService.
  • La classe Doctrine \ Common \ Persistence \ ObjectManager est obsolète depuis doctrine / persistence 1.3 et sera supprimée dans 2.0. Utilisez plutôt \ Doctrine \ Persistence \ ObjectManager.
  • La classe Doctrine \ Common \ Persistence \ ObjectRepository est obsolète depuis doctrine / persistence 1.3 et sera supprimée dans 2.0. Utilisez plutôt \ Doctrine \ Persistence \ ObjectRepository.
  • La classe Doctrine \ Common \ PropertyChangedListener est obsolète depuis doctrine / persistence 1.3 et sera supprimée dans 2.0. Utilisez \ Doctrine \ Persistence \ PropertyChangedListener à la place.
  • La clé de configuration "twig.exception_controller" est déconseillée dans Symfony 4.4, définissez-la sur "null" et utilisez plutôt la clé de configuration "framework.error_controller". (x2)

Est-ce "normal" ou y a-t-il des problèmes dans mon fichier composer.json? J'ai revérifié et je ne vois aucune dépendance ayant un paramètre "fixe".

J'ai même supprimé le dossier complet du fournisseur et téléchargé à nouveau car je pensais qu'il pouvait y avoir des "ordures", avec le même résultat.

Mon fichier composer.json:

{
    "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.*"
        }
    }
}

ÉDITER

J'ai vérifié les packages installés avec composer showet je constate qu'au moins 2 des packages installés sont pertinents avec la liste de désapprobation ci-dessus:

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

J'ai donc vérifié les versions disponibles de ces packages avec composer info doctrine/persistence --allet j'ai vu qu'il avait installé la dernière version non-dev:

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
(...)

Pareil pour doctrine-orm.

Le site GitHub pour la doctrine / persistance semble également corroborer cela: https://github.com/doctrine/persistence/releases

Cela m'amène donc à penser que c'est un comportement vraiment normal et qu'à l'avenir, lorsque ces packages seront mis à jour, les messages de dépréciation disparaîtront.

Remarque sur la solution

Comme toute personne ayant lu la réponse acceptée le remarquera, il y a encore 5 dépréciations qui ne peuvent pas encore être résolues. Je vais inclure une réponse ASA, il existe un correctif pour cela. Si quelqu'un le remarque avant moi, n'hésitez pas à ajouter une réponse à cette question. Merci.

Nelson Teixeira
la source
S'ils proviennent de bibliothèques de fournisseurs et non de votre code - alors c'est normal. Vous devez mettre à jour les fournisseurs en question et cela devrait le corriger. Gardez à l'esprit que toutes les bibliothèques ne sont pas à jour avec les dernières dépréciations de symfony et de doctrine, donc la mise à jour pourrait ne pas y remédier immédiatement.
tftd
Le problème est ... quels fournisseurs? il existe plusieurs packages pour doctrine et pour twig. AFAIU ce sont eux qui sont impliqués. Lesquelles dois-je choisir dans json? Je viens de vérifier ... juste pour le paquet doctrine, il y en a 33.
Nelson Teixeira
Le moyen le plus simple que j'ai trouvé pour résoudre ce problème est de démarrer le projet en mode développeur et de parcourir certaines pages de votre navigateur. La barre d'outils de débogage vous montrera des avis de dépréciation et vous pouvez utiliser les traceliens pour voir la trace de pile et localiser d'où ils viennent. :)
tftd
2
Les choses ont changé entre 4.3 et 4.4. N'oubliez pas que vous devez uniquement nettoyer les obsolescences avant de passer à 5.x. Il suffit donc de parcourir et de réparer comme les autres, bien que le premier soit en fait un problème de doctrine et puisse être résolu avec: stackoverflow.com/questions/58975182/…
Cerad
1
Veuillez ne pas supprimer la question. Même s'il n'y a rien à faire, sauf attendre les mises à jour des fournisseurs. Je suis arrivé ici via la dépréciation de la Doctrine (environ ObjectManager) et cela m'a aidé à voir ce qui se passait.
k00ni

Réponses:

3

Ok, j'ai pu corriger ce qui suit. N'hésitez pas à modifier cela si quelqu'un sait comment réparer l'un des autres.

1.) De Cerad dans les commentaires: Obsolescence: Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy sans le rendre conscient du numéro est déconseillé

9.) Option de configuration Twig twig.exception_controller: https://github.com/symfony/symfony/blob/master/UPGRADE-4.4.md#twigbundle

2.) L'ExceptionListener s'est effacé lorsque j'ai corrigé les deux éléments ci-dessus, me ramenant à seulement 5 dépréciations


Enfin les 5 restants semblent connus et seront corrigés par ceci: Avertissements de classes obsolètes dans la console Symfony 5.0.1 sous Windows

MEmerson
la source
1
Excellent. J'ai également réduit mon nombre de dépréciations à 5. Merci.
Nelson Teixeira
3

Si vous voulez vous débarrasser des Doctrine\Common\Persistence\*amortissements jusqu'à ce que tout soit réparé, vous pouvez ajouter un "conflict": { "doctrine/persistence": "1.3.*" }à votre composer.jsonet rester avec la version 1.2. * De doctrine / persistence .

Damien Debin
la source
2
Merci pour l'info, mais j'ai plutôt les messages, ou j'oublierai probablement que je dois corriger ça. :)
Nelson Teixeira