Попередження про припинення роботи після оновлення Symfony 4.3.9 до 4.4.1 / 5.0


12

У мене була установлена ​​програма Symfony 3.4.9, яка не потребує депресій. Тому я модернізував FW до 4.1.1. Тепер я отримав 9 попереджень про депресію, які надходять із бібліотек постачальників:

  • Створення доктрини \ ORM \ Картографування \ UnderscoreNamingStrategy без повідомлення про її кількість застаріле і буде видалено в Doctrine ORM 3.0.
  • Клас "Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener" застарілий з Symfony 4.4, замість цього використовуйте "ErrorListener".
  • Доктрина \ Загальна \ Постійність \ Картографування \ AbstractClassMetadataFactory клас застаріла, оскільки доктрина / стійкість 1.3 і буде видалена в 2.0. Використовуйте замість \ Вчення \ Наполегливість \ Картографування \ AbstractClassMetadataFactory.
  • Доктрина \ Загальна \ Постійність \ Картографування \ RuntimeReflectionService клас застаріла, оскільки доктрина / стійкість 1.3 і буде видалена через 2.0. Використовуйте замість \ Вчення \ Наполегливість \ Картографування \ RuntimeReflectionService.
  • Клас Doctrine \ Common \ Persistent \ ObjectManager застарілий, оскільки doctrine / persistent 1.3 і буде видалений у 2.0. Використовуйте замість \ Doctrine \ Persistent \ ObjectManager.
  • Клас Doctrine \ Common \ Persistence \ ObjectRepository застарілий, оскільки doctrine / persistent 1.3 і буде видалений у 2.0. Використовуйте замість \ Доктрина \ Постійність \ ObjectRepository.
  • Клас Doctrine \ Common \ PropertyChangedListener застарілий, оскільки doctrine / persistent 1.3 і буде видалений через 2.0. Використовуйте замість \ Доктрину \ Постійність \ PropertyChangedListener.
  • Ключ конфігурації "twig.exception_controller" був застарілий у Symfony 4.4, встановив його на "null" і замість цього використовуйте ключ конфігурації "Framework.error_controller". (x2)

Це "нормально" чи є проблеми у моєму файлі composer.json? Я двічі перевірив і не бачу залежності, яка має "фіксовану" настройку.

Я навіть видалив повну папку постачальника і знову завантажив, як думав, що може залишитися будь-яке "сміття", з таким же результатом.

Мій файл 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.*"
        }
    }
}

EDIT

Я перевірив встановлені пакети за допомогою composer showта переконався, що принаймні 2 встановлені пакети мають відношення до списку депресацій вище

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

Тож я перевірив наявні версії цих пакунків composer info doctrine/persistence --allі побачив, що в ньому встановлена ​​остання версія не для розробників:

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

Те саме для doctrine-orm.

Сайт GitHub для доктрини / наполегливості також, схоже, підтверджує це: https://github.com/doctrine/persistence/releases

Отож, це змушує мене думати, що це дійсно нормальна поведінка, і що в майбутньому, коли ці пакунки оновлюються, повідомлення про виснаження зникнуть.

Примітка про рішення

Як зауважить кожен, хто прочитав прийняту відповідь, все ще є 5 припинення, які поки що неможливо вирішити. Я включу відповідь ASA, для цього є виправлення. Якщо хтось помітить це перед мною, будь ласка, не вагайтеся, щоб додати відповідь на це питання. Дякую.


Якщо вони надходять з бібліотек постачальників, а не з вашого коду - тоді це нормально. Вам слід оновити відповідних постачальників, і це має виправити. Майте на увазі, що не всі бібліотеки оновлюються останніми застарілими символами та доктринами, тому оновлення може не виправити це відразу.
tftd

Проблема полягає в тому, які постачальники? Є кілька пакунків для доктрини та для гілочки. AFAIU це ті, хто бере участь. Які з них вибрати в json? Я щойно перевірив ... просто для пакету доктрин є 33.
Нельсон Тейшейра

Найпростіший спосіб, який я знайшов, щоб впоратися з цим, це запустити проект у режимі розробки та пройти кілька сторінок у вашому браузері. На панелі інструментів налагодження будуть показані повідомлення про застарілість, і ви можете скористатися traceпосиланнями, щоб побачити стеження та чітку точку, звідки вони надходять. :)
tftd

2
Речі змінилися між 4,3 та 4,4. Пам’ятайте, що вам потрібно лише очистити застарілість, перш ніж перейти до 5.x Так просто орють і виправити , як і будь-який інший , хоча перший з них на самому ділі питання Вчення і може бути виправлено з: stackoverflow.com/questions/58975182 / ...
Cerad

1
Не видаляйте питання. Навіть якщо нічого не робити, крім чекання оновлень постачальника. Я потрапив сюди через депресію доктрини (про ObjectManager), і це допомогло мені побачити, що відбувається.
k00ni

Відповіді:


3

Гаразд, мені вдалося виправити наступне. Не соромтесь редагувати це, якщо хтось знає, як виправити будь-який з інших.

1.) Від Cerad в коментарях: Депресія: Вчення \ ORM \ Картографування \ UnderscoreNamingStrategy, не повідомляючи про це число, застаріле

9.) Параметр конфігурації Twig twig.exception_controller: https://github.com/symfony/symfony/blob/master/UPGRADE-4.4.md#twigbundle

2.) ExceptionListener очистився, коли я виправив вищевказані два пункти, і звів мене лише до 5 ануляцій


Нарешті, п'ять залишилися, здається, відомі і будуть виправлені за цим: попередження про застарілі класи на консолі Symfony 5.0.1 для Windows


1
Відмінний. Також зменшив мою кількість дозволів до 5. Дякую.
Нельсон Тейшейра

3

Якщо ви хочете позбутися від Doctrine\Common\Persistence\*амортизації, поки все не буде виправлено, ви можете додати "conflict": { "doctrine/persistence": "1.3.*" }свою composer.jsonверсію та залишитись у версії 1.2. * Доктрини / наполегливості .


2
Дякую за інформацію, але я швидше маю повідомлення, або, мабуть, забуду, що мені це потрібно виправити. :)
Нельсон Тейшейра
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.