我有一个自定义控制器,它扩展了controller
(SymfonyBundleFrameworkBundleControllerController
),进而扩展ContainerAware
(SymfonyComponentDependencyInjectionContainerAware
)。
在我正在使用的所有功能中;
$foo = $this->get('foo');
所以我希望能够像这样构建我的类;
<?php
class FooController extends Controller
{
private $fooManager;
function indexAction()
{
// ...
$this->fooManager->getAllFoo($scope);
// ...
}
}
在我的自定义类中添加构造函数不起作用,因为ContainerAware
setContainer(ContainerInterface $container = null)
函数中设置容器。
我已经尝试在我的控制器中覆盖此功能,但仍然不好。
我该如何实现?
你正在寻找这个 - http://symfony.com/doc/current/cookbook/controller/service.html
您需要将控制器定义为服务,并将依赖项和类注入到构造器。如果要使用容器感知,这将很难,因为您需要调用setContainer
方法(可以从服务配置中完成)。
问候皮奥特