getModules() публичный метод

Returns the sub-modules in this module.
public getModules ( boolean $loadedOnly = false ) : array
$loadedOnly boolean whether to return the loaded sub-modules only. If this is set `false`, then all sub-modules registered in this module will be returned, whether they are loaded or not. Loaded modules will be returned as objects, while unloaded modules as configuration arrays.
Результат array the modules (indexed by their IDs).
Пример #1
0
 /**
  * 
  * @param \yii\base\Module $module
  * @param array $result
  */
 private static function getRouteRecrusive($module, &$result)
 {
     foreach ($module->getModules() as $id => $child) {
         if (($child = $module->getModule($id)) !== null) {
             self::getRouteRecrusive($child, $result);
         }
     }
     /* @var $controller \yii\base\Controller */
     foreach ($module->controllerMap as $id => $value) {
         $controller = Yii::createObject($value, [$id, $module]);
         self::getActionRoutes($controller, $result);
         $result[] = '/' . $controller->uniqueId . '/*';
     }
     $namespace = trim($module->controllerNamespace, '\\') . '\\';
     self::getControllerRoutes($module, $namespace, '', $result);
     $result[] = ($module->uniqueId === '' ? '' : '/' . $module->uniqueId) . '/*';
 }
Пример #2
0
 /**
  * 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;
 }
Пример #4
0
 /**
  * Configures given module with provided configuration array.
  * @param \yii\base\Module $module module to be configured.
  * @param array $config configuration array.
  */
 public function configure($module, $config = null)
 {
     if ($config === null) {
         $config = $this->fetchConfig();
     }
     foreach ($config as $key => $value) {
         switch ($key) {
             case 'components':
                 $components = array_merge($module->getComponents(true), $module->getComponents(false));
                 $components = ArrayHelper::merge($components, $value);
                 $module->setComponents($components);
                 break;
             case 'modules':
                 $nestedModules = $module->getModules(false);
                 foreach ($nestedModules as $id => $nestedModule) {
                     if (!isset($value[$id])) {
                         continue;
                     }
                     if (is_object($nestedModule)) {
                         $this->configure($nestedModule, $value[$id]);
                     } else {
                         $nestedModules[$id] = ArrayHelper::merge($nestedModule, $value[$id]);
                     }
                 }
                 $module->setModules($nestedModules);
                 break;
             case 'params':
                 $module->params = ArrayHelper::merge($module->params, $value);
                 break;
             default:
                 $module->{$key} = $value;
         }
     }
 }
 /**
  * 
  * @param \yii\base\Module $module
  * @param array $result
  */
 private static function getRouteRecrusive($module, &$result, $exclude)
 {
     foreach ($module->getModules() as $id => $child) {
         if (($child = $module->getModule($id)) !== null) {
             if (!in_array($child->id, $exclude['module'])) {
                 self::getRouteRecrusive($child, $result, $exclude);
             }
         }
     }
     /* @var $controller \yii\base\Controller */
     foreach ($module->controllerMap as $id => $value) {
         $controller = Yii::createObject($value, [$id, $module]);
         if (!in_array($controller->module->id, $exclude['module']) && !in_array($controller->id, $exclude['controller'])) {
             self::getActionRoutes($controller, $result);
             //$result[$controller->module->id][$controller->id][] = '*';
             //$result['map'][$controller->module->id]['*'][] = '*';
             /*
                             $result['map'][] = [
                                 'module' => $controller->module->id,
                                 'controller' => $controller->id,
                                 'action'    =>  '*',
                             ];
                             //*/
         }
     }
     if (!in_array($module->id, $exclude['module'])) {
         $namespace = trim($module->controllerNamespace, '\\') . '\\';
         self::getControllerRoutes($module, $namespace, '', $result, $exclude);
         //$result[$module->id]['*'] = '*';
         //$result['map'][$controller->module->id]['*'][] = '*';
         /*
                     $result['model'][] = [
                             'module' => $module->id,
                             'controller' => '*',
                             'action'    =>  '*',
                         ];
                     //*/
     }
 }