src/EventSubscriber/ApplicationConfigurationSubscriber.php line 55

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Event\CreateApplicationConfigurationEvent;
  4. use App\Event\UpdateApplicationConfigurationEvent;
  5. use App\Event\DeleteApplicationConfigurationEvent;
  6. use App\Message\CreateApplicationConfigurationMessage;
  7. use App\Message\UpdateApplicationConfigurationMessage;
  8. use App\Message\DeleteApplicationConfigurationMessage;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\Messenger\MessageBusInterface;
  11. class ApplicationConfigurationSubscriber implements EventSubscriberInterface
  12. {
  13.     protected MessageBusInterface $bus;
  14.     /**
  15.      * @param MessageBusInterface $bus
  16.      */
  17.     public function __construct(MessageBusInterface $bus)
  18.     {
  19.         $this->bus $bus;
  20.     }
  21.     public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             CreateApplicationConfigurationEvent::NAME => 'onCreateApplicationConfiguration',
  25.             UpdateApplicationConfigurationEvent::NAME => 'onUpdateApplicationConfiguration',
  26.             DeleteApplicationConfigurationEvent::NAME => 'onDeleteApplicationConfiguration',
  27.         ];
  28.     }
  29.     public function onCreateApplicationConfiguration(CreateApplicationConfigurationEvent $event): void
  30.     {
  31.         $payload = [
  32.             'applicationConfiguration' => $event->getApplicationConfiguration(),
  33.         ];
  34.         $message = new CreateApplicationConfigurationMessage($payload);
  35.         $this->bus->dispatch($message);
  36.     }
  37.     public function onUpdateApplicationConfiguration(UpdateApplicationConfigurationEvent $event): void
  38.     {
  39.         $payload = [
  40.             'applicationConfiguration' => $event->getApplicationConfiguration(),
  41.         ];
  42.         $message = new UpdateApplicationConfigurationMessage($payload);
  43.         $this->bus->dispatch($message);
  44.     }
  45.     public function onDeleteApplicationConfiguration(DeleteApplicationConfigurationEvent $event): void
  46.     {
  47.         $payload = [
  48.             'applicationConfiguration' => $event->getApplicationConfiguration(),
  49.         ];
  50.         $message = new DeleteApplicationConfigurationMessage($payload);
  51.         $this->bus->dispatch($message);
  52.     }
  53. }