首页 文章

为什么Symfony 3.3.13源代码会产生弃用警告(不在我的代码中)?

提问于
浏览
1

我在Symfony 3.3.13全栈应用程序中收到了弃用通知 .

自Symfony 3.3以来,自动装配类型已被弃用,将在4.0中删除 . 使用别名代替“Psr \ Log \ LoggerInterface” .

请注意,这来自Symfony源代码,而不是我的代码 .

单击“显示跟踪”显示它位于文件vendor / symfony / monolog-bundle / DependencyInjection / MonologExtension.php中 .

代码是:

if (method_exists('Symfony\Component\DependencyInjection\Definition', 'addAutowiringType')) {
         $container->getDefinition('monolog.logger')->addAutowiringType('Psr\Log\LoggerInterface');
    }

我怀疑我需要更新我的composer.json文件中的monolog-bundle版本,但是无法弄清楚正确的版本 . 它目前设置为“~2.8” .

2 回答

  • 5

    好的 . 我终于想到检查Packagist更新的monolog-bundle版本 .

    我将composer.json文件中的版本从“~2.8”更改为“~3.1”并更新了作曲家更新symfony / monolog-bundle .

    问题解决了 .

  • 1

    这是symfony自动装配已经改变的通知 . Symfony Autowiring

    这只是一个警告,你的 symfony/monolog-bundle 无论如何检查是否存在自动装配类型:

    if (method_exists('Symfony\Component\DependencyInjection\Definition', 'addAutowiringType')) {
    

    您的Symfony版本只保留Symfony\Component\DependencyInjection\Definition Symfony\Component\DependencyInjection\Definition函数给您这个警告 .

    最新版本的Monolog软件包添加了必要的别名github link

    您可以使用 monolog-bundle 的版本 3.1 .

    如果由于任何原因您必须使用任何以前的版本,则需要在服务配置中自行添加别名 .

    服务:Psr \ Log \ LoggerInterface:“@ logger”

相关问题