setModules() public method

Each sub-module should be specified as a name-value pair, where name refers to the ID of the module and value the module or a configuration array that can be used to create the module. In the latter case, [[Yii::createObject()]] will be used to create the module. If a new sub-module has the same ID as an existing one, the existing one will be overwritten silently. The following is an example for registering two sub-modules: php [ 'comment' => [ 'class' => 'app\modules\comment\CommentModule', 'db' => 'db', ], 'booking' => ['class' => 'app\modules\booking\BookingModule'], ]
public setModules ( array $modules )
$modules array modules (id => module configuration or instances).
Example #1
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;
         }
     }
 }