Ostrzeżenia o wycofaniu po aktualizacji Symfony 4.3.9 do 4.4.1 / 5.0

12

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 showi 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 --alli 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.

Nelson Teixeira
źródło
Jeśli pochodzą one z bibliotek dostawców, a nie z Twojego kodu - to normalne. Należy zaktualizować dostawców, o których mowa, i to powinno to naprawić. Pamiętaj, że nie wszystkie biblioteki są na bieżąco z najnowszymi wersjami symfony i doktryn, więc aktualizacja może nie rozwiązać tego od razu.
tftd
Problemem jest ... którzy dostawcy? istnieje wiele pakietów doktryn i gałązek. AFAIU to oni są zaangażowani. Które wybrać w Json? Właśnie sprawdziłem ... tylko pakiet doktrynalny jest 33.
Nelson Teixeira,
Najłatwiejszym sposobem, aby sobie z tym poradzić, jest rozpoczęcie projektu w trybie deweloperskim i przeglądanie niektórych stron w przeglądarce. Pasek narzędzi debugowania wyświetli powiadomienia o wycofaniu. Możesz użyć tracełączy, aby zobaczyć ślad stosu i wskazać punkt skąd pochodzą. :)
tftd,
2
Sytuacja zmieniła się między 4.3 a 4.4. Pamiętaj, że musisz tylko wyczyścić deprecjację przed przejściem do 5.x. Więc po prostu przebij i napraw jak każdy inny, chociaż pierwszy z nich jest w rzeczywistości problemem Doktryny i można go naprawić za pomocą: stackoverflow.com/questions/58975182/...
Cerad
1
Proszę nie usuwać pytania. Nawet jeśli nie ma nic do zrobienia, oprócz czekania na aktualizacje dostawcy. Dotarłem tutaj przez wycofanie się z Doktryny (około ObjectManager) i pomogło mi to zobaczyć, co się dzieje.
k00ni

Odpowiedzi:

3

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

MEmerson
źródło
1
Doskonały Zmniejszyłem również liczbę zwolnień do 5. Dziękuję.
Nelson Teixeira,
3

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 swojej composer.jsoni pozostać przy wersji 1.2. * Od doktryny / wytrwałości .

Damien Debin
źródło
2
Dzięki za informacje, ale raczej mam wiadomości, bo pewnie zapomnę, że muszę to naprawić. :)
Nelson Teixeira,