/** * Execute certain hook handler * * @return void */ public function executeHookHandler() { // To cache data \Includes\Utils\ModulesManager::getActiveModules(); // Prepare flag to use it later for loading or not loading modules' yaml files $isModulesFileExists = \Includes\Utils\ModulesManager::isModulesFileExists(); // Walk through the "XLite/Module" directory foreach ($this->getModuleMainFileIterator()->getIterator() as $path => $data) { $dir = $path; $name = basename($dir = dirname($dir)); $author = basename($dir = dirname($dir)); $class = \Includes\Utils\ModulesManager::getClassNameByAuthorAndName($author, $name); if (!\Includes\Utils\Operator::checkIfClassExists($class)) { require_once $path; } \Includes\Utils\ModulesManager::switchModule($author, $name, $isModulesFileExists); } \Includes\Utils\ModulesManager::removeFile(); }