/** @inheritdoc */ public function bootstrap($app) { if ($app->hasModule('releases') && ($module = $app->getModule('releases')) instanceof Module) { if ($module->basePathReleases === null) { throw new InvalidParamException('Invalid configuration module "releases". Parameter "releasesBasePath" must be defined.'); } if ($module->viewPath !== null) { $module->setViewPath($module->viewPath); } $this->_modelMap = array_merge($this->_modelMap, $module->modelMap); $this->_ruleMap = array_merge($this->_ruleMap, $module->ruleMap); $models = array_merge($this->_modelMap, $this->_ruleMap); foreach ($models as $name => $definition) { $class = (isset($this->_ruleMap[$name]) ? "devbrom\\releases\\components\\rbac\\" : "devbrom\\releases\\models\\") . $name; \Yii::$container->set($class, $definition); $modelName = is_array($definition) ? $definition['class'] : $definition; $module->modelMap[$name] = $modelName; if (in_array($name, ['Release', 'Note'])) { \Yii::$container->set($name . 'Query', function () use($modelName) { return $modelName::find(); }); } } \Yii::$container->setSingleton(Finder::className(), ['releaseQuery' => \Yii::$container->get('ReleaseQuery'), 'noteQuery' => \Yii::$container->get('NoteQuery')]); if ($app instanceof ConsoleApplication) { $module->controllerNamespace = 'devbrom\\releases\\commands'; } else { $configUrlRule = ['prefix' => $module->urlPrefix, 'rules' => $module->urlRules]; if ($module->urlPrefix != 'releases') { $configUrlRule['routePrefix'] = 'releases'; } $app->get('urlManager')->rules[] = new GroupUrlRule($configUrlRule); } } }
public static function findOne($id) { return \Yii::$container->get(Finder::className())->findReleaseById($id); }