getModules() public method

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.
return array the modules (indexed by their IDs).
コード例 #1
0
ファイル: AccessHelper.php プロジェクト: hscstudio/yii2-heart
 /**
  * 
  * @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
ファイル: HelpController.php プロジェクト: drodata/yii2
 /**
  * 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;
 }
コード例 #3
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 (strcmp(substr($file, -14), 'Controller.php') === 0) {
                 $commands[] = $prefix . Inflector::camel2id(substr(basename($file), 0, -14));
             }
         }
     }
     return $commands;
 }
コード例 #4
0
ファイル: Manager.php プロジェクト: heartshare/config
 /**
  * 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;
         }
     }
 }
コード例 #5
0
 /**
  * 
  * @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'    =>  '*',
                         ];
                     //*/
     }
 }