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

时间:2017-11-29 19:39:28

标签: 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');
    }

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

2 个答案:

答案 0 :(得分:5)

这是symfony自动装配已更改的通知。 Symfony Autowiring

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

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

您的Symfony版本只保留了Symfony\Component\DependencyInjection\Definition addAutowiringType 功能,以便为您提供此警告。

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

您可以使用 monolog-bundle 3.1 版本。

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

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

答案 1 :(得分:1)

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

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

问题解决了。