src/EventSubscriber/ActivityLogDataSubscriber.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Event\ActivityLogDataEvent;
  4. use Psr\Log\LoggerInterface;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use App\Utils\ActivityLogHandler;
  7. class ActivityLogDataSubscriber implements EventSubscriberInterface
  8. {
  9.     private LoggerInterface $logger;
  10.     private $activityLogger;
  11.     public function __construct(LoggerInterface $loggerActivityLogHandler $activityLogger )
  12.     {
  13.         $this->logger $logger;
  14.         $this->activityLogger $activityLogger;
  15.     }
  16.     public function onActivityLogDataEvent(ActivityLogDataEvent $event): void
  17.     {
  18.         $data $event->getData();
  19.         // Log or process the data
  20.         $this->logger->info('ActivityLog data event handled'$data);
  21.         // Modify the data if needed
  22.         $this->activityLogger->activityLogSaveData($data['activityAction'],$data);
  23.         $data['processed'] = true;
  24.         $event->setData($data);
  25.     }
  26.     public static function getSubscribedEvents(): array
  27.     {
  28.         return [
  29.             'activity_log.data_event' => 'onActivityLogDataEvent',
  30.         ];
  31.     }
  32. }