我的印象是我可以获得请求对象,如下面的代码所示。与依赖注入有关。
以下内容作为服务激活,除了第一个给出此错误的参数外,所有内容似乎都设置正确:
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....
我猜你上面的不是你怎么做的?
答案 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')