我正在尝试将KNPMenuBundle
与Sumfony 3.3
一起使用,但我收到了这个恼人的警告:
不推荐使用基于其实施类型的自动装配服务 自从Symfony 3.3开始,4.0版本将不再支持。你应该 将“knp_menu.factory”服务重命名(或别名)为 “Knp \ Menu \ FactoryInterface”代替。
跟踪: {.... /供应商/ symfony的/ symfony的/ SRC / Symfony的/组件/ DependencyInjection /编译器/ AutowirePass.php:344: }
我根本没有设置此knp_menu.factory
,可能是由捆绑包自动设置的。
我是否需要配置任何内容才能使此警告消失?
答案 0 :(得分:2)
我这样解决了:
app.component_menu.builder:
class: AppBundle\Component\Menu\Builder
arguments: ['@knp_menu.factory', '@event_dispatcher']
calls:
- [setAuthorizationChecker, ['@security.authorization_checker']]
Knp\Menu\ItemInterface:
class: Knp\Menu\MenuItem
factory: ['@app.component_menu.builder', mainMenu]
arguments: ['@knp_menu.matcher']
tags:
- { name: knp_menu.menu, alias: main }
Knp\Menu\FactoryInterface:
alias: knp_menu.factory
public: false
不确定这是否是建议的解决方案,但会删除弃用声明。