mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 13:02:24 +08:00
Update structure-applications.md
This commit is contained in:
@ -5,10 +5,10 @@
|
||||
每个 Yii 应用系统只能包含一个应用主体,应用主体在
|
||||
[入口脚本](structure-entry-scripts.md) 中创建并能通过表达式 `\Yii::$app` 全局范围内访问。
|
||||
|
||||
> Info: 当我们说"一个应用",它可能是一个应用主体对象,也可能是一个应用系统,
|
||||
> Info: 当我们说“一个应用”,它可能是一个应用主体对象,也可能是一个应用系统,
|
||||
是根据上下文来决定[译:中文为避免歧义,Application 翻译为应用主体]。
|
||||
|
||||
Yii有两种应用主体: [[yii\web\Application|网页应用主体]] and
|
||||
Yii有两种应用主体: [[yii\web\Application|网页应用主体]] 和
|
||||
[[yii\console\Application|控制台应用主体]],
|
||||
如名称所示,前者主要处理网页请求,后者处理控制台请求。
|
||||
|
||||
@ -60,12 +60,12 @@ $config = require __DIR__ . '/../config/web.php';
|
||||
|
||||
[[yii\base\Application::basePath|basePath]] 指定该应用的根目录。
|
||||
根目录包含应用系统所有受保护的源代码。
|
||||
在根目录下可以看到对应MVC设计模式的`models`,
|
||||
`views`, `controllers`等子目录。
|
||||
在根目录下可以看到对应 MVC 设计模式的`models`,
|
||||
`views`,`controllers` 等子目录。
|
||||
|
||||
可以使用路径或 [路径别名](concept-aliases.md) 来在配置 [[yii\base\Application::basePath|basePath]] 属性。
|
||||
两种格式所对应的目录都必须存在,否则系统会抛出一个异常。
|
||||
系统会使用 `realpath()` 函数规范化配置的路径.
|
||||
系统会使用 `realpath()` 函数规范化配置的路径。
|
||||
|
||||
[[yii\base\Application::basePath|basePath]] 属性经常用于派生一些其他重要路径(如 runtime 路径),
|
||||
因此,系统预定义 `@app` 代表这个路径。
|
||||
@ -151,7 +151,7 @@ $config = require __DIR__ . '/../config/web.php';
|
||||
|
||||
|
||||
在启动阶段,每个组件都会实例化。如果组件类实现接口
|
||||
[[yii\base\BootstrapInterface]],也会调用
|
||||
[[yii\base\BootstrapInterface]],也会调用
|
||||
[[yii\base\BootstrapInterface::bootstrap()|bootstrap()]] 方法。
|
||||
|
||||
举一个实际的例子,[Basic Application Template](start-installation.md)
|
||||
@ -196,7 +196,7 @@ if (YII_ENV_DEV) {
|
||||
|
||||
#### [[yii\base\Application::components|components]] <span id="components"></span>
|
||||
|
||||
这是最重要的属性,它允许你注册多个在其他地方使用的 [应用组件](#structure-application-components.md).
|
||||
这是最重要的属性,它允许你注册多个在其他地方使用的 [应用组件](#structure-application-components.md)。
|
||||
例如
|
||||
|
||||
```php
|
||||
@ -258,7 +258,7 @@ Yii遵循一个默认的 [规则](#controllerNamespace) 指定控制器ID到任
|
||||
|
||||
控制器类全面能被 [自动加载](concept-autoloading.md),
|
||||
这点是非常重要的,控制器类的实际命名空间对应这个属性,
|
||||
否则,访问时你会收到"Page Not Found"[译:页面找不到]。
|
||||
否则,访问时你会收到“Page Not Found”。
|
||||
|
||||
如果你想打破上述的规则,
|
||||
可以配置 [controllerMap](#controllerMap) 属性。
|
||||
@ -365,6 +365,7 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
]
|
||||
```
|
||||
|
||||
有关设置时区含义的更多详细信息,请查看[关于日期格式的部分](output-formatting.md#time-zones)。
|
||||
|
||||
#### [[yii\base\Application::version|version]] <span id="version"></span>
|
||||
|
||||
@ -388,7 +389,7 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
|
||||
该属性指定未配置的请求的响应 [路由](runtime-routing.md) 规则,
|
||||
路由规则可能包含模块 ID,控制器 ID,动作 ID。
|
||||
例如`help`, `post/create`, `admin/post/create`,如果动作ID没有指定,
|
||||
例如 `help`,`post/create`,`admin/post/create`,如果动作 ID 没有指定,
|
||||
会使用 [[yii\base\Controller::defaultAction]] 中指定的默认值。
|
||||
|
||||
对于 [[yii\web\Application|Web applications]] 网页应用,
|
||||
@ -564,7 +565,7 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
### [[yii\base\Application::EVENT_AFTER_ACTION|EVENT_AFTER_ACTION]] <span id="afterAction"></span>
|
||||
|
||||
该事件在每个 [控制器动作](structure-controllers.md) 运行 *after* 之后会被触发,
|
||||
实际的事件名为 `afterAction`.
|
||||
实际的事件名为 `afterAction`。
|
||||
|
||||
该事件的参数为 [[yii\base\ActionEvent]] 实例,
|
||||
通过 [[yii\base\ActionEvent::result]] 属性,
|
||||
@ -598,14 +599,14 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
2. 入口脚本创建一个应用主体实例:
|
||||
* 调用 [[yii\base\Application::preInit()|preInit()]] 配置几个高级别应用主体属性,
|
||||
比如 [[yii\base\Application::basePath|basePath]]。
|
||||
* 注册 [[yii\base\Application::errorHandler|error handler]] 错误处理方法.
|
||||
* 配置应用主体属性.
|
||||
* 注册 [[yii\base\Application::errorHandler|error handler]] 错误处理方法。
|
||||
* 配置应用主体属性。
|
||||
* 调用 [[yii\base\Application::init()|init()]] 初始化,该函数会调用 [[yii\base\Application::bootstrap()|bootstrap()]]
|
||||
运行引导启动组件.
|
||||
运行引导启动组件。
|
||||
3. 入口脚本调用 [[yii\base\Application::run()]] 运行应用主体:
|
||||
* 触发 [[yii\base\Application::EVENT_BEFORE_REQUEST|EVENT_BEFORE_REQUEST]] 事件。
|
||||
* 处理请求:解析请求 [路由](runtime-routing.md) 和相关参数;
|
||||
创建路由指定的模块、控制器和动作对应的类,并运行动作。
|
||||
* 触发 [[yii\base\Application::EVENT_AFTER_REQUEST|EVENT_AFTER_REQUEST]] 事件。
|
||||
* 发送响应到终端用户.
|
||||
* 发送响应到终端用户。
|
||||
4. 入口脚本接收应用主体传来的退出状态并完成请求的处理。
|
||||
|
||||
Reference in New Issue
Block a user