php - 如何调用内核终止事件
问题描述
我试图向用户发送响应,并在它为我的服务做出努力之后。我在那里找到了另一个线程(如何在服务中使用 kernel.terminate 事件)。但它不起作用。当我尝试在那里进行类似操作时,我的日志中出现了下一条消息: php.INFO: User Deprecated: Calling the "Symfony\Component\EventDispatcher\EventDispatcherInterface::dispatch()" 然后我就这样尝试了:
public function makeHardWork()
{
$this->dispatcher->addListener(KernelEvents::TERMINATE, function (Event $event){
$this->logger->log(LogLevel::ERROR,'123456');
},1);
}
我也尝试在 index.php 中转储 $kernel 并且有我的订阅者。但没有任何记录。我应该怎么做才能工作?
解决方案
你试过这个吗?
服务.yaml
App\EventListener\SomeEventListener:
tags:
- { 'name': 'kernel.event_listener', 'event': 'kernel.terminate', 'method': 'onTerminateEvent' }
一些事件监听器
<?php
namespace App\EventListener;
use Symfony\Component\HttpKernel\Event\TerminateEvent;
class SomeEventListener
{
private $someSerive;
public function __construct(SomeService $someService)
{
$this->someService = $someService;
}
public function onTerminateEvent(TerminateEvent $event)
{
$request = $event->getRequest();
if ($request->get('_route') !== 'some_route_name') {
return;
}
$this->someService->makeHardWork();
}
}
推荐阅读
- php - 如何更改多维数组中的日期格式并用键迭代所有数组
- flutter - 单个子滚动视图不适用于手势检测器
- image - 在颤振中使用多部分上传图像
- r - 尝试将表格图像转换为 BW 并删除 R 中的网格时参数无效
- python - 在 Python3 中编辑 csv 文件
- python - EOFError:Pickle 中的输入用完
- c# - 使用 JavaScriptSerializer 反序列化 json 字符串
- python - whatsapp 聊天导出和转换
- c++ - 如何在 C++ 中输入 total_area 公式?它显示了这些错误
- docker - 在运行过程中在 Docker 中运行命令