转载
http://www.yiichina.com/doc/guide/2.0/start-workflow
声明周期
basic/ 应用根目录
controllers/ 包含控制器类
models/ 包含模型类
views/ 包含视图文件
composer.json Composer 配置文件, 描述包信息
config/ 包含应用配置及其它配置
console.php 控制台应用配置信息
web.php Web 应用配置信息
commands/ 包含控制台命令类
runtime/ 包含 Yii 在运行时生成的文件,例如日志和缓存文件
vendor/ 包含已经安装的 Composer 包,包括 Yii 框架自身
web/ Web 应用根目录,包含 Web 入口文件
assets/ 包含 Yii 发布的资源文件(javascript 和 css)
index.php 应用入口文件
yii Yii 控制台命令执行脚本
- 用户向入口脚本 web/index.php 发起请求。
- 入口脚本加载应用配置 并创建一个应用实例去处理请求。
- 应用通过请求组件 解析请求的路由。
- 应用创建一个控制器实例去处理请求。
- 控制器创建一个动作实例并针对操作执行过滤器。
- 如果任何一个过滤器返回失败,则动作取消。
- 如果所有过滤器都通过,动作将被执行。
- 动作会加载一个数据模型,或许是来自数据库。
- 动作会渲染一个视图,把数据模型提供给它。
- 渲染结果返回给响应组件。
- 响应组件发送渲染结果给用户浏览器
Hello World
创建一个动作响应请求、创建一个视图去构造响应内容、应用分配请求给动作。
动作是最终用户可以直接访问并执行的对象。
动作必须声明在控制器中,一个动作的执行结果就是最终用户收到的响应内容。
创建一个say
的动作: 该动作接收message
动作(默认参数Hello
),并显示给用户:
Controller:
<?php
namespace app\controllers;
use yii\web\Controller;
class SiteController extends Controller
{
public function actionSay($message = 'Hello')
{
return $this->render('say', ['message' => $message]);
}
...
}
View:
say 视图应该存为 views/site/say.php
文件。当一个动作中调用了 yii\web\Controller::render()
方法时, 它将会寻找名为 views/控制器 ID/视图名.php 的PHP文件。。
<?php
use yii\helpers\Html;
?>
<?= Html::encode($message) ?>
访问: http://hostname/index.php?r=site/say&message=Hello+World