Ho avuto un'installazione di Symfony 3.4.9 senza deprecazioni. Quindi ho aggiornato l'FW alla 4.1.1. Ora ho ricevuto 9 avvisi di deprecazione tutti provenienti dalle librerie dei fornitori:
- La creazione di Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy senza renderlo consapevole del numero è obsoleta e verrà rimossa in Doctrine ORM 3.0.
- La classe "Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener" è obsoleta dal momento che Symfony 4.4 utilizza invece "ErrorListener".
- La classe Doctrine \ Common \ Persistence \ Mapping \ AbstractClassMetadataFactory è obsoleta dalla dottrina / persistenza 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ Mapping \ AbstractClassMetadataFactory.
- La classe Doctrine \ Common \ Persistence \ Mapping \ RuntimeReflectionService è obsoleta dalla dottrina / persistenza 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ Mapping \ RuntimeReflectionService.
- La classe Doctrine \ Common \ Persistence \ ObjectManager è obsoleta a partire da dottrine / persistence 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ ObjectManager.
- La classe Doctrine \ Common \ Persistence \ ObjectRepository è obsoleta dalla dottrina / persistenza 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ ObjectRepository.
- La classe Doctrine \ Common \ PropertyChangedListener è obsoleta dalla dottrina / persistenza 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ PropertyChangedListener.
- La chiave di configurazione "twig.exception_controller" è stata deprecata in Symfony 4.4, impostala su "null" e usa invece la chiave di configurazione "framework.error_controller". (X2)
È "normale" o c'è qualche problema nel mio file composer.json? Ho ricontrollato e non vedo alcuna dipendenza che abbia un'impostazione "fissa".
Ho persino cancellato la cartella completa del fornitore e scaricato di nuovo poiché pensavo che potesse essere rimasta qualsiasi "spazzatura", con lo stesso risultato.
Il mio file 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.*"
}
}
}
MODIFICARE
Ho controllato i pacchetti installati con composer show
e vedo che almeno 2 dei pacchetti installati sono rilevanti con l'elenco di deprecazioni sopra:
(...)
doctrine/orm v2.7.0 Object-Relational-Mapper for PHP
doctrine/persistence 1.3.3 The Doctrine Persistence project is a set of shared...
(...)
Quindi ho controllato le versioni disponibili di questi pacchetti con composer info doctrine/persistence --all
e ho visto che ha installato l'ultima versione 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
(...)
Lo stesso per doctrine-orm
.
Anche il sito GitHub per dottrina / persistenza sembra confermare questo: https://github.com/doctrine/persistence/releases
Quindi questo mi porta a pensare che questo sia un comportamento davvero normale e che in futuro, quando questi pacchetti verranno aggiornati, i messaggi di deprecazione scompariranno.
Nota sulla soluzione
Come noterà chiunque abbia letto la risposta accettata, ci sono ancora 5 deprecazioni che non possono ancora essere risolti. Includerò una risposta ASA ci sono una soluzione per questo. Se qualcuno lo nota prima di me, per favore non esitare ad aggiungere una risposta a questa domanda. Grazie.
trace
collegamenti per vedere lo stacktrace e il punto pin da dove provengono. :)
ObjectManager
) e mi ha aiutato a vedere, cosa sta succedendo.