Skip to content

deprecated-packages/SymfonyEventDispatcher

Repository files navigation

The Simplest Symfony Event Dispatcher integration to Nette

Build Status Code Coverage Downloads

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.