src/EventSubscriber/ResponseSubscriber.php
<?php
declare(strict_types = 1);
/**
* /src/EventSubscriber/ResponseSubscriber.php
*
* @author TLe, Tarmo Leppänen <tarmo.leppanen@pinja.com>
*/
namespace App\EventSubscriber;
use App\Service\Version;
use Override;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
/**
* @package App\EventSubscriber
* @author TLe, Tarmo Leppänen <tarmo.leppanen@pinja.com>
*/
class ResponseSubscriber implements EventSubscriberInterface
{
public function __construct(
private readonly Version $version,
) {
}
/**
* {@inheritdoc}
*/
#[Override]
public static function getSubscribedEvents(): array
{
return [
ResponseEvent::class => [
'onKernelResponse',
10,
],
];
}
/**
* Subscriber method to attach API version to every response.
*/
public function onKernelResponse(ResponseEvent $event): void
{
// Attach new header
$event->getResponse()->headers->add([
'X-API-VERSION' => $this->version->get(),
]);
}
}