1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* Bootstrap script for the module yii2-activeuser |
4
|
|
|
* |
5
|
|
|
* @link https://github.com/inblank/yii2-activeuser |
6
|
|
|
* @copyright Copyright (c) 2016 Pavel Aleksandrov <[email protected]> |
7
|
|
|
* @license http://opensource.org/licenses/MIT |
8
|
|
|
*/ |
9
|
|
|
namespace inblank\activeuser; |
10
|
|
|
|
11
|
|
|
use inblank\activeuser\traits\CommonTrait; |
12
|
|
|
use yii; |
13
|
|
|
use yii\base\Application; |
14
|
|
|
use yii\console\Application as ConsoleApplication; |
15
|
|
|
use yii\i18n\PhpMessageSource; |
16
|
|
|
use yii\web\GroupUrlRule; |
17
|
|
|
|
18
|
|
|
/** |
19
|
|
|
* Bootstrap class for the module yii2-activeuser |
20
|
|
|
* @package inblank\activeuser |
21
|
|
|
*/ |
22
|
|
|
class Bootstrap implements yii\base\BootstrapInterface |
23
|
|
|
{ |
24
|
|
|
use CommonTrait; |
25
|
|
|
|
26
|
|
|
/** @var array Model's map */ |
27
|
|
|
private $_modelMap = [ |
28
|
|
|
]; |
29
|
|
|
|
30
|
|
|
/** |
31
|
|
|
* Bootstrap method to be called during application bootstrap stage. |
32
|
|
|
* @param Application $app the application currently running |
33
|
|
|
*/ |
34
|
|
|
public function bootstrap($app) |
35
|
|
|
{ |
36
|
|
|
/** @var Module $module */ |
37
|
|
|
/** @var \yii\db\ActiveRecord $modelName */ |
38
|
|
|
if ($app->hasModule('activeuser') && ($module = $app->getModule('activeuser')) instanceof Module) { |
39
|
|
|
$this->_modelMap = array_merge($this->_modelMap, $module->modelMap); |
40
|
|
|
foreach ($this->_modelMap as $name => $definition) { |
41
|
|
|
$class = "inblank\\activeuser\\models\\" . $name; |
42
|
|
|
Yii::$container->set($class, $definition); |
43
|
|
|
$modelName = is_array($definition) ? $definition['class'] : $definition; |
44
|
|
|
$module->modelMap[$name] = $modelName; |
45
|
|
|
} |
46
|
|
|
if ($app instanceof ConsoleApplication) { |
47
|
|
|
$app->controllerMap['activeuser'] = [ |
48
|
|
|
'class' => 'inblank\activeuser\commands\DefaultController', |
49
|
|
|
]; |
50
|
|
|
} else { |
51
|
|
|
// init user |
52
|
|
|
Yii::$container->set('yii\web\User', [ |
53
|
|
|
'loginUrl' => ['/activeuser/account/login'], |
54
|
|
|
'identityClass' => self::di('User'), |
55
|
|
|
]); |
56
|
|
|
$configUrlRule = [ |
57
|
|
|
'prefix' => $module->urlPrefix, |
58
|
|
|
'rules' => defined('IS_BACKEND') ? $module->urlRulesBackend : $module->urlRulesFrontend, |
59
|
|
|
]; |
60
|
|
|
if ($module->urlPrefix != 'activeuser') { |
61
|
|
|
$configUrlRule['routePrefix'] = 'activeuser'; |
62
|
|
|
} |
63
|
|
|
$app->urlManager->addRules([new GroupUrlRule($configUrlRule)], false); |
64
|
|
|
if (defined('IS_BACKEND')) { |
65
|
|
|
// is backend, and controller have other namespace |
66
|
|
|
$module->controllerNamespace = 'inblank\activeuser\controllers\backend'; |
67
|
|
|
$module->frontendUrlManager = new yii\web\UrlManager([ |
68
|
|
|
'baseUrl' => '/', |
69
|
|
|
'enablePrettyUrl' => true, |
70
|
|
|
'showScriptName' => false, |
71
|
|
|
]); |
72
|
|
|
$configUrlRule['rules'] = $module->urlRulesFrontend; |
73
|
|
|
$module->frontendUrlManager->addRules([new GroupUrlRule($configUrlRule)], false); |
74
|
|
|
} |
75
|
|
|
} |
76
|
|
|
if (!isset($app->get('i18n')->translations['activeuser*'])) { |
77
|
|
|
$app->get('i18n')->translations['activeuser*'] = [ |
78
|
|
|
'class' => PhpMessageSource::className(), |
|
|
|
|
79
|
|
|
'basePath' => __DIR__ . '/messages', |
80
|
|
|
]; |
81
|
|
|
} |
82
|
|
|
} |
83
|
|
|
} |
84
|
|
|
} |
85
|
|
|
|
This method has been deprecated. The supplier of the class has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.