symplify / symfony-event-dispatcher
Symfony\EventDispatcher integration to Nette.
Installs: 19 595
Dependents: 3
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
pkg:composer/symplify/symfony-event-dispatcher
Requires
- php: ^7.1
- nette/di: ^2.4
- nette/http: ^2.4
- symfony/dependency-injection: ^3.2
- symfony/event-dispatcher: ^3.2
- symplify/package-builder: ^1.3
Requires (Dev)
- kdyby/events: ^3.0
- nette/application: ^2.4
- nette/bootstrap: ^2.4
- phpunit/phpunit: ^6.0
- symfony/config: ^3.2
- symfony/console: ^3.2
- symfony/http-kernel: ^3.2
- symfony/yaml: ^3.2
- tracy/tracy: ^2.4
This package is auto-updated.
Last update: 2022-03-08 10:48:48 UTC
README
Install
composer require symplify/symfony-event-dispatcher
Register the extension in config.neon
:
# app/config/config.neon extensions: - Symplify\SymfonyEventDispatcher\Adapter\Nette\DI\SymfonyEventDispatcherExtension
Usage
See short article about EventDispatcher. This article is tested – it will be still up-to-date with Symfony 4+.
1. Create class that implements Symfony\Component\EventDispatcher\SubscriberInterface
:
// 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; } }
2. Register it to services
# app/config/config.neon services: - App\EventSubscriber\CheckRequestEventSubscriber
And it works :)
That's all!
Contributing
Send issue or pull-request to main repository.