<?php
namespace App\EventSubscriber;
use App\Service\Utils\FlushService;
use Doctrine\Persistence\ManagerRegistry;
use Exception;
use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
/**
* Auto flushes objects before HTTP responses
*/
class AutoFlushEventSubscriber implements EventSubscriberInterface {
/** @var FlushService $flushService */
private FlushService $flushService;
public function __construct(FlushService $flushService) {
$this->flushService = $flushService;
}
/** @inheritdoc */
public static function getSubscribedEvents() {
return [
KernelEvents::RESPONSE => ['doAutoFlush', 1024]
];
}
/**
* Performs auto flushing in database before the response is sent to the end-user.
*
* @param ResponseEvent $event The response event.
*/
public function doAutoFlush(ResponseEvent $event): void {
$this->flushService->flush($event);
}
}