我在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”。
答案 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。
问题解决了。