src/EventSubscriber/ArticleSubscriber.php line 27
<?phpnamespace App\EventSubscriber;use App\Entity\Article;use App\Event\Article\ArticleCreatedEvent;use App\Event\Article\ArticleDeletedEvent;use App\Event\Article\ArticleUpdatedEvent;use App\Service\NotificationService;use Symfony\Component\EventDispatcher\EventSubscriberInterface;class ArticleSubscriber implements EventSubscriberInterface{public function __construct(private NotificationService $notificationService){}public static function getSubscribedEvents(): array{return [ArticleCreatedEvent::class => 'onCreated',ArticleUpdatedEvent::class => 'onUpdated',ArticleDeletedEvent::class => 'onDeleted',];}public function onCreated(ArticleCreatedEvent $event): void{$article = $event->getArticle();if ($article instanceof Article) {$this->notificationService->notifyUser($article->getAuthor(),'Article ajouté',sprintf("Vous venez d'ajouter l'article <strong>%s</strong>",$article->getName()),$article);}}public function onUpdated(ArticleUpdatedEvent $event): void{$article = $event->getArticle();if ($article instanceof Article) {$this->notificationService->notifyUser($article->getAuthor(),'Article modifié',sprintf("Vous venez de modifier l'article <strong>%s</strong>",$article->getName()),$article);}}public function onDeleted(ArticleDeletedEvent $event): void{$article = $event->getArticle();if ($article instanceof Article) {$this->notificationService->notifyUser($article->getAuthor(),'Article supprimé',sprintf("Vous venez de supprimer l'article <strong>%s</strong>",$article->getName()),$article);}}}