Miałem wolną od rezygnacji instalację Symfony 3.4.9. Więc zaktualizowałem FW do 4.1.1. Teraz otrzymałem 9 ostrzeżeń o wycofaniu pochodzących z bibliotek dostawców:
- Tworzenie Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy bez uświadamiania numeru jest przestarzałe i zostanie usunięte w Doctrine ORM 3.0.
- Klasa „Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener” jest przestarzała, ponieważ Symfony 4.4 używa zamiast tego „ErrorListener”.
- Klasa Doctrine \ Common \ Persistence \ Mapping \ AbstractClassMetadataFactory jest przestarzała od doktryny / trwałości 1.3 i zostanie usunięta w wersji 2.0. Zamiast tego użyj \ Doctrine \ Persistence \ Mapping \ AbstractClassMetadataFactory.
- Klasa Doctrine \ Common \ Persistence \ Mapping \ RuntimeReflectionService jest przestarzała od doktryny / trwałości 1.3 i zostanie usunięta w wersji 2.0. Zamiast tego użyj opcji \ Doctrine \ Persistence \ Mapping \ RuntimeReflectionService.
- Klasa Doctrine \ Common \ Persistence \ ObjectManager jest przestarzała od doktryny / trwałości 1.3 i zostanie usunięta w wersji 2.0. Zamiast tego należy użyć \ Doctrine \ Persistence \ ObjectManager.
- Klasa Doctrine \ Common \ Persistence \ ObjectRepository jest przestarzała od momentu doktryny / trwałości 1.3 i zostanie usunięta w wersji 2.0. Zamiast tego użyj \ Doctrine \ Persistence \ ObjectRepository.
- Klasa Doctrine \ Common \ PropertyChangedListener jest przestarzała od doktryny / trwałości 1.3 i zostanie usunięta w wersji 2.0. Zamiast tego użyj \ Doctrine \ Persistence \ PropertyChangedListener.
- Klucz konfiguracyjny „twig.exception_controller” został wycofany w Symfony 4.4, ustaw go na „null” i zamiast tego użyj klucza konfiguracyjnego „framework.error_controller”. (x2)
Czy to „normalne” lub występują problemy w moim pliku composer.json? Sprawdziłem dwukrotnie i nie widzę żadnej zależności, która ma jakieś „ustalone” ustawienie.
Nawet usunąłem pełny folder dostawcy i pobrałem ponownie, ponieważ myślałem, że mogą pozostać jakieś „śmieci”, z takim samym skutkiem.
Mój plik 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.*"
}
}
}
EDYTOWAĆ
Sprawdziłem zainstalowane pakiety composer show
i przekonałem się, że co najmniej 2 z zainstalowanych pakietów są zgodne z powyższą listą wycofań:
(...)
doctrine/orm v2.7.0 Object-Relational-Mapper for PHP
doctrine/persistence 1.3.3 The Doctrine Persistence project is a set of shared...
(...)
Sprawdziłem więc dostępne wersje tych pakietów composer info doctrine/persistence --all
i zobaczyłem, że zainstalowała najnowszą wersję inną niż 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
(...)
To samo dotyczy doctrine-orm
.
Wydaje się, że witryna GitHub dla doktryny / trwałości potwierdza to: https://github.com/doctrine/persistence/releases
To prowadzi mnie do wniosku, że jest to naprawdę normalne zachowanie i że w przyszłości, gdy pakiety te zostaną zaktualizowane, komunikaty o wycofaniu znikną.
Uwaga na temat rozwiązania
Jak każdy, kto przeczytał zaakceptowaną odpowiedź, zauważy, nadal istnieje 5 wycofań, których nie można jeszcze rozwiązać. Dołączę odpowiedź ASA. Jest na to poprawka. Jeśli ktoś zauważy to przede mną, proszę dodać odpowiedź na to pytanie. Dzięki.
źródło
trace
łączy, aby zobaczyć ślad stosu i wskazać punkt skąd pochodzą. :)ObjectManager
) i pomogło mi to zobaczyć, co się dzieje.Odpowiedzi:
Ok, udało mi się naprawić następujące. Możesz to edytować, jeśli ktoś wie, jak to naprawić.
1.) Od Cerada w komentarzach: Wycofanie: Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy bez uświadamiania numeru jest przestarzałe
9.) Opcja konfiguracji Twig twig.exception_controller: https://github.com/symfony/symfony/blob/master/UPGRADE-4.4.md#twigbundle
2.) ExceptionListener wyczyścił się, kiedy naprawiłem powyższe dwa elementy, co sprowadziło mnie do zaledwie 5 wycofań
Wreszcie 5 pozostałych, wydaje się, że są znane i zostaną naprawione w ten sposób: Przestarzałe ostrzeżenia o klasach w konsoli Symfony 5.0.1 w systemie Windows
źródło
Jeśli chcesz pozbyć się
Doctrine\Common\Persistence\*
odpisów amortyzacyjnych, dopóki wszystko nie jest ustalona, można dodać"conflict": { "doctrine/persistence": "1.3.*" }
do swojejcomposer.json
i pozostać przy wersji 1.2. * Od doktryny / wytrwałości .źródło