【问题标题】:Symfony Controller - Adding AttributesSymfony 控制器 - 添加属性
【发布时间】:2014-01-08 09:27:45
【问题描述】:

我有一个扩展 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) 函数。
我已经尝试在我的控制器中覆盖这个函数,但还是不行。

我该如何实现?

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    你正在寻找这个 - http://symfony.com/doc/current/cookbook/controller/service.html

    您需要将控制器定义为服务并将依赖项和类注入构造函数。如果您要使用容器感知,这将很困难,因为您需要调用setContainer 方法(可以通过服务配置完成)。

    问候, 彼得

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-03
      • 2018-10-11
      • 2023-03-17
      • 1970-01-01
      • 2015-07-17
      • 2020-12-14
      • 2018-01-18
      • 2018-03-02
      相关资源
      最近更新 更多