我有一个自定义控制器,可以扩展controller
(Symfony\Bundle\FrameworkBundle\Controller\Controller
),后者又扩展ContainerAware
(Symfony\Component\DependencyInjection\ContainerAware
)。
我正在使用的所有功能;
$foo = $this->get('foo');
所以我希望能够像这样构建我的课程;
<?php
class FooController extends Controller
{
private $fooManager;
function indexAction()
{
// ...
$this->fooManager->getAllFoo($scope);
// ...
}
}
在我的自定义类中添加构造函数不起作用,因为ContainerAware
在setContainer(ContainerInterface $container = null)
函数中设置了容器。
我试过在我的控制器中覆盖这个功能,但仍然没有用。
我该如何实现?
答案 0 :(得分:2)
您正在寻找这个 - http://symfony.com/doc/current/cookbook/controller/service.html
您需要将控制器定义为服务,并将dependecys和类注入到构造函数中。如果您打算使用容器,那将很难,因为您需要调用setContainer
方法(可以从服务配置中完成)。
的问候, 彼得·