1 | <?php |
||
60 | class Application extends \yii\base\Application |
||
61 | { |
||
62 | /** |
||
63 | * The option name for specifying the application configuration file path. |
||
64 | */ |
||
65 | const OPTION_APPCONFIG = 'appconfig'; |
||
66 | |||
67 | /** |
||
68 | * @var string the default route of this application. Defaults to 'help', |
||
69 | * meaning the `help` command. |
||
70 | */ |
||
71 | public $defaultRoute = 'help'; |
||
72 | /** |
||
73 | * @var bool whether to enable the commands provided by the core framework. |
||
74 | * Defaults to true. |
||
75 | */ |
||
76 | public $enableCoreCommands = true; |
||
77 | /** |
||
78 | * @var Controller the currently active controller instance |
||
79 | */ |
||
80 | public $controller; |
||
81 | |||
82 | |||
83 | /** |
||
84 | * @inheritdoc |
||
85 | */ |
||
86 | 2137 | public function __construct($config = []) |
|
91 | |||
92 | /** |
||
93 | * Loads the configuration. |
||
94 | * This method will check if the command line option [[OPTION_APPCONFIG]] is specified. |
||
95 | * If so, the corresponding file will be loaded as the application configuration. |
||
96 | * Otherwise, the configuration provided as the parameter will be returned back. |
||
97 | * @param array $config the configuration provided in the constructor. |
||
98 | * @return array the actual configuration to be used by the application. |
||
99 | */ |
||
100 | 2137 | protected function loadConfig($config) |
|
118 | |||
119 | /** |
||
120 | * Initialize the application. |
||
121 | */ |
||
122 | 2137 | public function init() |
|
123 | { |
||
124 | 2137 | parent::init(); |
|
125 | 2137 | if ($this->enableCoreCommands) { |
|
126 | 2121 | foreach ($this->coreCommands() as $id => $command) { |
|
127 | 2121 | if (!isset($this->controllerMap[$id])) { |
|
128 | 2121 | $this->controllerMap[$id] = $command; |
|
129 | 2121 | } |
|
130 | 2121 | } |
|
131 | 2121 | } |
|
132 | // ensure we have the 'help' command so that we can list the available commands |
||
133 | 2137 | if (!isset($this->controllerMap['help'])) { |
|
134 | 19 | $this->controllerMap['help'] = 'yii\console\controllers\HelpController'; |
|
135 | 19 | } |
|
136 | 2137 | } |
|
137 | |||
138 | /** |
||
139 | * Handles the specified request. |
||
140 | * @param Request $request the request to be handled |
||
141 | * @return Response the resulting response |
||
142 | */ |
||
143 | 1 | public function handleRequest($request) |
|
157 | |||
158 | /** |
||
159 | * Runs a controller action specified by a route. |
||
160 | * This method parses the specified route and creates the corresponding child module(s), controller and action |
||
161 | * instances. It then calls [[Controller::runAction()]] to run the action with the given parameters. |
||
162 | * If the route is empty, the method will use [[defaultRoute]]. |
||
163 | * |
||
164 | * For example, to run `public function actionTest($a, $b)` assuming that the controller has options the following |
||
165 | * code should be used: |
||
166 | * |
||
167 | * ```php |
||
168 | * \Yii::$app->runAction('controller/test', ['option' => 'value', $a, $b]); |
||
169 | * ``` |
||
170 | * |
||
171 | * @param string $route the route that specifies the action. |
||
172 | * @param array $params the parameters to be passed to the action |
||
173 | * @return int|Response the result of the action. This can be either an exit code or Response object. |
||
174 | * Exit code 0 means normal, and other values mean abnormal. Exit code of `null` is treaded as `0` as well. |
||
175 | * @throws Exception if the route is invalid |
||
176 | */ |
||
177 | 3 | public function runAction($route, $params = []) |
|
186 | |||
187 | /** |
||
188 | * Returns the configuration of the built-in commands. |
||
189 | * @return array the configuration of the built-in commands. |
||
190 | */ |
||
191 | 2121 | public function coreCommands() |
|
203 | |||
204 | /** |
||
205 | * Returns the error handler component. |
||
206 | * @return ErrorHandler the error handler application component. |
||
207 | */ |
||
208 | public function getErrorHandler() |
||
209 | { |
||
210 | return $this->get('errorHandler'); |
||
211 | } |
||
212 | |||
213 | /** |
||
214 | * Returns the request component. |
||
215 | * @return Request the request component. |
||
216 | */ |
||
217 | 57 | public function getRequest() |
|
218 | { |
||
219 | 57 | return $this->get('request'); |
|
220 | } |
||
221 | |||
222 | /** |
||
223 | * Returns the response component. |
||
224 | * @return Response the response component. |
||
225 | */ |
||
226 | 2 | public function getResponse() |
|
227 | { |
||
228 | 2 | return $this->get('response'); |
|
229 | } |
||
230 | |||
231 | /** |
||
232 | * @inheritdoc |
||
233 | */ |
||
234 | 2137 | public function coreComponents() |
|
242 | } |
||
243 |