如何将服务(我创建的服务)注入到我的 Controller 中?一个 setter 注入就可以了。
<?php
namespace MyNamespace;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class MyController extends Controller
{
public function setMyService(MyService $myService)
{
$this->myService = $myService;
}
public function indexAction()
{
//Here I cannot access $this->myService;
//Because the setter is not called magically!
}
}
我的路线设置:
// Resources/routing.yml
myController_index:
pattern: /test
defaults: { _controller: "FooBarBundle:MyController:index" }
我将服务设置在另一个包中:
// Resources/services.yml
parameters:
my.service.class: Path\To\My\Service
services:
my_service:
class: %my.service.class%
解决路由后,不会注入服务(我知道不应该)。我想在 yml 文件的某个地方,我必须设置:
calls:
- [setMyService, [@my_service]]
我没有将此控制器用作服务,它是提供请求的常规控制器。
编辑:此时,我正在使用 $this->container->get('my_service'); 获得服务 但我需要注入它。