The Simplest Symfony Event Dispatcher integration to Nette
composer require symplify/symfony-event-dispatcher
Register the extension in config.neon
:
# app/config/config.neon
extensions:
- Symplify\SymfonyEventDispatcher\Adapter\Nette\DI\SymfonyEventDispatcherExtension
See short article about EventDispatcher. This article is tested – it will be still up-to-date with Symfony 4+.
// app/EventSubscriber/CheckRequestEventSubscriber.php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\Event\GetResponseEvent
final class CheckRequestEventSubscriber implements EventSubscriberInterface
{
/**
* @var bool
*/
public $isUserNotified = false;
public static function getSubscribedEvents(): array
{
// in format ['event name' => 'public function name that will be called']
return [KernelEvents::REQUEST => 'validateRequest'];
}
// Appropriate event object is passed in arguments
public function validateRequest(GetResponseEvent $event): void
{
// some logic to send notification
$this->isUserNotified = true;
}
}
# app/config/config.neon
services:
- App\EventSubscriber\CheckRequestEventSubscriber
And it works :)
That's all!
Send issue or pull-request to main repository.