custom/plugins/CogiAffiliate/src/Subscriber/BusinessEventCollectorSubscriber.php line 30

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Cogi\Affiliate\Subscriber;
  3. use Cogi\Affiliate\Core\Event\AffiliateApplicationAcceptEvent;
  4. use Cogi\Affiliate\Core\Event\AffiliateNewTransactionAdminEvent;
  5. use Cogi\Affiliate\Core\Event\AffiliateNewTransactionAffiliateEvent;
  6. use Cogi\Affiliate\Core\Event\AffiliatePayoutRequestEvent;
  7. use Shopware\Core\Framework\Event\BusinessEventCollector;
  8. use Shopware\Core\Framework\Event\BusinessEventCollectorEvent;
  9. use Cogi\Affiliate\Core\Event\AffiliateNewApplicationEvent;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. class BusinessEventCollectorSubscriber implements EventSubscriberInterface
  12. {
  13.     private BusinessEventCollector $businessEventCollector;
  14.     public function __construct(BusinessEventCollector $businessEventCollector)
  15.     {
  16.         $this->businessEventCollector $businessEventCollector;
  17.     }
  18.     public static function getSubscribedEvents(): array
  19.     {
  20.         return [
  21.             BusinessEventCollectorEvent::NAME => ['onAddAffiliateEvents'1000],
  22.         ];
  23.     }
  24.     public function onAddAffiliateEvents(BusinessEventCollectorEvent $event): void
  25.     {
  26.         $collection $event->getCollection();
  27.         $eventClasses = [
  28.             AffiliateNewApplicationEvent::class,
  29.             AffiliateApplicationAcceptEvent::class,
  30.             AffiliatePayoutRequestEvent::class,
  31.             AffiliateNewTransactionAdminEvent::class,
  32.             AffiliateNewTransactionAffiliateEvent::class
  33.         ];
  34.         foreach($eventClasses as $eventClass) {
  35.             $definition $this->businessEventCollector->define($eventClass);
  36.             if (!$definition) {
  37.                 continue;
  38.             }
  39.             $collection->set($definition->getName(), $definition);
  40.         }
  41.     }
  42. }