我在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 回答
好的 . 我终于想到检查Packagist更新的monolog-bundle版本 .
我将composer.json文件中的版本从“~2.8”更改为“~3.1”并更新了作曲家更新symfony / monolog-bundle .
问题解决了 .
这是symfony自动装配已经改变的通知 . Symfony Autowiring
这只是一个警告,你的 symfony/monolog-bundle 无论如何检查是否存在自动装配类型:
您的Symfony版本只保留Symfony\Component\DependencyInjection\Definition Symfony\Component\DependencyInjection\Definition函数给您这个警告 .
最新版本的Monolog软件包添加了必要的别名github link
您可以使用 monolog-bundle 的版本 3.1 .
如果由于任何原因您必须使用任何以前的版本,则需要在服务配置中自行添加别名 .
服务:Psr \ Log \ LoggerInterface:“@ logger”