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

Dav*_*son 1 symfony deprecation-warning

我在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');
    }
Run Code Online (Sandbox Code Playgroud)

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

Jan*_*tis 5

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

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

if (method_exists('Symfony\Component\DependencyInjection\Definition', 'addAutowiringType')) {
Run Code Online (Sandbox Code Playgroud)

您的Symfony版本只保留了Symfony\Component\DependencyInjection\Definition的addAutowiringType函数,以便为您提供此警告.

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

您可以使用版本3.1独白束.

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

服务:Psr\Log\LoggerInterface:"@ logger"