src/EventListener/ModulesInitEventDispatcher.php line 33

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright (c) 2011-present Qualiteam software Ltd. All rights reserved.
  4.  * See https://www.x-cart.com/license-agreement.html for license details.
  5.  */
  6. namespace XCart\EventListener;
  7. use Symfony\Contracts\EventDispatcher\Event;
  8. use XCart\Domain\HookManagerDomain;
  9. use XCart\Domain\ModuleManagerDomain;
  10. final class ModulesInitEventDispatcher
  11. {
  12.     public const NAME 'xcart.modules.init';
  13.     private HookManagerDomain $hookManager;
  14.     private ModuleManagerDomain $moduleManager;
  15.     public function __construct(
  16.         HookManagerDomain $hookManager,
  17.         ModuleManagerDomain $moduleManager
  18.     ) {
  19.         $this->hookManager   $hookManager;
  20.         $this->moduleManager $moduleManager;
  21.     }
  22.     /**
  23.      * @throws \XCart\Exception\HookManagerException
  24.      */
  25.     public function dispatchModulesInitEvent(Event $event)
  26.     {
  27.         foreach ($this->moduleManager->getEnabledModuleIds() as $moduleId) {
  28.             $this->hookManager->runHook([
  29.                 'moduleId' => $moduleId,
  30.                 'hookType' => HookManagerDomain::HOOK_TYPE_INIT,
  31.                 'event'    => $event,
  32.             ]);
  33.         }
  34.     }
  35. }