我想更改我的服务以使用symfony 3的autowire功能。 我让它适用于大多数人,但我仍然使用一些参数来调查服务。
对于使用其他服务的服务,我只是在autowire配置后从我的服务文件中删除它们。但我仍然有这样的服务
RECORD
我的构造函数看起来像这样
App\MyBundle\Lib\GraphLib: ["@serv.carslib","@serv.buslib","%kernel.root_dir%","@translator","%version%"]
有没有办法用参数自动装配这项服务?如果不是,我怎么能改变参数@ serv.carslib和@ serv.buslib。因为这些服务是自动装配的,并且无法做出像这样的工作
public function __construct(CarsLib $carsLib, BusLib $busLib, $rootdir, TranslatorInterface $translator, $version){
编辑1:我尝试更改我的服务,但我发现错误'该服务依赖于不存在的服务'
App\MyBundle\Lib\GraphLib: ["@App\MyBundle\Lib\CarLib","@App\MyBundle\Lib\BusLib","%kernel.root_dir%","@translator","%version%"]
我也尝试这样的事情
App\MyBundle\Lib\GraphLib:
arguments:
$carsLib: "@App\MyBundle\Lib\CarLib"
$busLib: "@App\MyBundle\Lib\BusLib"
$rootdir: "%kernel.root_dir%"
$translator: "@translator"
$version: "%version%"
我改变了控制器中的params顺序,就像这样
App\MyBundle\Lib\GraphLib:
arguments:
$rootdir: "%kernel.root_dir%"
$version: "%version%"
但是我有这个错误:必须在
之前定义服务参数1的无效构造函数参数4答案 0 :(得分:0)
答案 1 :(得分:0)
我用单引号更改我的服务,它可以正常工作
App\MyBundle\Lib\GraphLib:
arguments:
$carsLib: '@App\MyBundle\Lib\CarLib'
$busLib: '@App\MyBundle\Lib\BusLib'
$rootdir: '%kernel.root_dir%'
$translator: '@translator'
$version: '%version%'