src/EventListener/SupplierTriggerReportSubscriber.php line 30
<?phpnamespace App\EventListener;use App\Event\GlobalEventTypes;use App\Event\SupplierEventMapperInterface;use App\Event\SupplierTriggerReportEvent;use Psr\EventDispatcher\EventDispatcherInterface;use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;class SupplierTriggerReportSubscriber extends SupplierEventSubscriber{public function __construct(readonly protected ParameterBagInterface $parameterBag,protected EventDispatcherInterface $dispatcher) {parent::__construct($dispatcher);}public static function getSubscribedEvents(): array{return [GlobalEventTypes::TRIGGER_REPORT => 'onTriggerReport',];}/*** @throws \ReflectionException*/public function onTriggerReport(SupplierTriggerReportEvent $event): void{$providerCode = $event->getProviderCode();/** @var SupplierEventMapperInterface $supplierEventMapper */$supplierEventMapper = $this->parameterBag->get(sprintf('app.%s.event.mapper', $providerCode));$supplierEventMap = $supplierEventMapper::$MAP;$response = [$providerCode => [],];foreach ($supplierEventMap as $hookName => $supplierTrigger) {$eventInspector = new \ReflectionClass($supplierTrigger[2]);$response[$providerCode][] = ['name' => $hookName,'event' => $supplierTrigger[0],'requires' => array_map(fn ($p): string => $p->name, $eventInspector->getConstructor()->getParameters()),'description' => $supplierTrigger[3],];}$this->sendInterruptResponse($response);}}