symfony2:通过配置将服务传递给服务(控制器作为服务)

时间:2014-04-10 07:42:28

标签: symfony service parameters

我正在尝试将我的服务(在其他包中定义)传递给控制器​​,控制器被定义为服务但在承包商中变为空。 我知道我们可以通过传递service_container来完成它,但需要知道我是否只能将特定服务传递给控制器​​。

1 个答案:

答案 0 :(得分:0)

如果名称是唯一的,这里没问题。

namespace Yourapp\OneBundle\Controller;

class OneController extends Controller
{
    public function oneAction()
    {
        $otherControllerManager = $this->get('youappOtherbundle.the_manager');
    }
}

编辑:好吧,在我看来,你可以扩展控制器,即使它是一个控制器作为服务。 为什么不像往常一样“传输”您所需的服务?

在您的services.yml

OneController.controller.service:
    class: Yourapp\OneBundle\Controller\OneController
    arguments: ["@templating", "@router"]

在您的控制器中:

public function __construct(EngineInterface $templating, UrlGeneratorInterface $router)
{
    $this->templating = $templating;
    $this->router = $router;
}