public function __construct(Di $di, Application $app, $config = [], array $userOptions = null) { $this->setDi($di); if (!$config instanceof Config) { $config = new Config(is_array($config) ? $config : []); } $this->app = $app; $this->initOptions($di, $userOptions); $default = $this->getDefaultModule(); $detected = $this->_detectModuleConf(); $modconf = $this->_mergeModConf($detected, $config); $modarray = $modconf->toArray(); $this->config = $modconf; if (count($modarray)) { $app->registerModules($modarray); if (in_array($default, array_keys($modarray))) { $app->setDefaultModule($default); $this->router->setDefaultModule($default); } $this->initModuleRouting($app); } }