Note that in order for this method to return a value, you must define
an alias for the root namespace of [[controllerNamespace]].
public getControllerPath ( ) : string | ||
Результат | string | the directory that contains the controller classes. |
/** * @param Module $module * * @return array */ public function getModuleControllers(Module $module) { $controllers = []; $path = $module->getControllerPath(); $files = array_diff(scandir($path), ['..', '.']); asort($files); foreach ($files as $file) { if (strcmp(mb_substr($file, -mb_strlen(self::CONTROLLER_FILE)), self::CONTROLLER_FILE) === 0) { $id = Inflector::camel2id(mb_substr(basename($file), 0, -mb_strlen(self::CONTROLLER_FILE))); $controller = $this->getModuleController($module, $id); if ($controller) { $controllers[$id] = $this->getControllerActions($controller); } } } return $controllers; }
/** * Returns available commands of a specified module. * @param \yii\base\Module $module the module instance * @return array the available command names */ protected function getModuleCommands($module) { $prefix = $module instanceof Application ? '' : $module->getUniqueId() . '/'; $commands = []; foreach (array_keys($module->controllerMap) as $id) { $commands[] = $prefix . $id; } foreach ($module->getModules() as $id => $child) { if (($child = $module->getModule($id)) === null) { continue; } foreach ($this->getModuleCommands($child) as $command) { $commands[] = $command; } } $controllerPath = $module->getControllerPath(); if (is_dir($controllerPath)) { $files = scandir($controllerPath); foreach ($files as $file) { if (!empty($file) && substr_compare($file, 'Controller.php', -14, 14) === 0) { $controllerClass = $module->controllerNamespace . '\\' . substr(basename($file), 0, -4); if ($this->validateControllerClass($controllerClass)) { $commands[] = $prefix . Inflector::camel2id(substr(basename($file), 0, -14)); } } } } return $commands; }
/** * Returns available commands of a specified module. * @param \yii\base\Module $module the module instance * @return array the available command names */ protected function getModuleCommands($module) { $prefix = $module instanceof Application ? '' : $module->getUniqueID() . '/'; $commands = []; foreach (array_keys($module->controllerMap) as $id) { $commands[] = $prefix . $id; } foreach ($module->getModules() as $id => $child) { if (($child = $module->getModule($id)) === null) { continue; } foreach ($this->getModuleCommands($child) as $command) { $commands[] = $command; } } $controllerPath = $module->getControllerPath(); if (is_dir($controllerPath)) { $files = scandir($controllerPath); foreach ($files as $file) { if (strcmp(substr($file, -14), 'Controller.php') === 0) { $commands[] = $prefix . Inflector::camel2id(substr(basename($file), 0, -14)); } } } return $commands; }