我在 Symfony 中创建了一个简单的测试用例。因此,一个客户端应该侦听将在请求期间调度的事件。但是什么也没发生,因为请求有自己的范围,或者我不知道为什么我无法访问其中的调度程序。
$this->client = static::createClient();
self::$container = $this->client->getContainer();
$dispatcher = self::$container->get('event_dispatcher');
$dispatcher->addListener('example', function ($event) {
// Never executed
});
$this->client->request('POST', $endpoint, $this->getNextRequestParameters($i), [$file], $this->requestHeaders);
$this->client->getResponse();
永远不会调用侦听器。当我稍微调试一下时,我发现对象哈希通过spl_object_hash($dispatcher)
在最高级别上与在request
级别内不同。所以似乎request
有一个自己的世界,而忽略了外面的一切。
但接下来的问题是如何让我的听众进入这个“世界”?