依赖注入Symfony 2简单代码返回错误

时间:2013-03-18 04:03:16

标签: symfony

我的印象是我可以获得请求对象,如下面的代码所示。与依赖注入有关。

以下内容作为服务激活,除了第一个给出此错误的参数外,所有内容似乎都设置正确:

ErrorException:Catchable Fatal Error:Argument 1传递给....

namespace Acme\Bundle\BundleName\EventListener;

use Symfony\Component\HttpKernel\Event\GetResponseEvent;

class RequestListener
{

    public function onKernelRequest(GetResponseEvent $event)
    {

        $request = $event->getRequest();

        // etc....

我猜你上面的不是你怎么做的?

1 个答案:

答案 0 :(得分:0)

如果你想在内核请求上声明一个事件监听器,你应该这样声明它(注意标签参数):

services:
    acme.demobundle.listener.request:
        class: Acme\Bundle\BundleName\EventListener\RequestListener
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }

否则,如果你想创建一个服务,你应该这样声明

services:
    acme.demobundle.demo.service:
        class: Acme\Bundle\BundleName\Service\DemoService
        arguments: [@service_container]

对于服务或听众,我建议只注入所需的服务。

很高兴知道服务将在第一次通话时初始化。

可以通过容器访问服务,监听器和枝条扩展。

$this->container->get('your.listener.name')
$this->container->get('your.service.name')
$this->container->get('your.extension.name')