gpt4 book ai didi

symfony - 在 Symfony2 中使用事件监听器记录请求和响应

转载 作者:行者123 更新时间:2023-12-04 18:06:01 26 4
gpt4 key购买 nike

我正在尝试使用 Symfony2 中的事件监听器记录请求和响应。

我已经注册了以下服务:

class LoggerListener
{

/**
* @var \Doctrine\ODM\MongoDB\DocumentManager
*/
private $documentManager;

public function __construct(DocumentManager $documentManager)
{

$this->documentManager = $documentManager;
}

public function onKernelResponse(FilterControllerEvent $event)
{
$controller = $event->getController();

if ( ! is_array($controller)) {
return;
}

if ( ! $controller instanceof BaseAPIController) {
return;
}


$log = new ServerRequestsLog();
$log->setRequest($request);
$log->setRequest($response);


}
}

使用此配置:
  example.response_listener:
class: Example\ServerBundle\EventListener\LoggerListener
arguments: ["@doctrine.odm.mongodb.document_manager"]
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }

如何在此操作中获取请求和响应?如果我将注入(inject)请求服务,我想我可以获得请求。但是 react 呢?

最佳答案

尽你所能read here , kernel.response传递给您的监听器的事件对象是 FilterResponseEvent .此对象同时具有 getRequestgetResponse方法。所以你的代码应该是这样的:

public function onKernelResponse(FilterResponseEvent $event)
{
$request = $event->getRequest();
$response = $event->getResponse();

$log = new ServerRequestsLog();
$log->setRequest($request);
$log->setRequest($response);
//....Save it with document manager, etc.
}

关于symfony - 在 Symfony2 中使用事件监听器记录请求和响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27677244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com