<?php
declare(strict_types=1);
namespace App\Subscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ViewEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Stamp\HandledStamp;
class MessengerResponseSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
KernelEvents::VIEW => [
['onKernelView', 31],
]
];
}
/**
* Przechwytywanie wyniku kontrollera i zamiana instancji Envelope na instancjÄ™ zwracanego obiektu
*
* @param ViewEvent $event
*
*/
public function onKernelView(ViewEvent $event)
{
$controllerResult = $event->getControllerResult();
if ($controllerResult instanceof Envelope) {
$event->setControllerResult($controllerResult->last(HandledStamp::class)->getResult());
}
}
}