一、目录结构
在上一章中,我们成功创建了yii并且跑起来了,下面我们进入basic项目根目录,来看一下yii的目录结构
- composer.json Composer 配置文件, 描述包信息
- config/ 包含应用配置及其它配置
- console.php 控制台应用配置信息
- web.php Web 应用配置信息
- commands/ 包含控制台命令类
- controllers/ 包含控制器类
- models/ 包含模型类
- runtime/ 包含Yii在运行时生成的文件,例如日志和缓存文件
- vendor/ 包含已经安装的 Composer 包,包括 Yii 框架自身
- views/ 包含视图文件
- web/ Web 应用根目录,包含 Web 入口文件
- assets/ 包含 Yii 发布的资源文件(javascript 和 css)
- index.php 应用入口文件
- yii Yii 控制台命令执行脚本
二、yii处理请求的流程
当我们访问http://localhost:8889/index.php
时,yii是如何处理我们的请求的呢?让我们接着往下看,首先我们看一下yii的结构图
再来我们看一下yii针对客户端请求处理的流程图
下面我们来具体讲解一下流程:
- 用户向入口脚本web/index.php发起请求。
- 入口脚本加载应用配置并创建一个应用实例去处理请求。
- 应用通过请求组件解析请求的路由
- 应用创建一个控制器实例去处理请求。
- 控制器创建一个动作实例并针对操作执行过滤器
- 如果任何一个过滤器返回失败,则动作取消。
- 如果所有过滤器都通过,动作将被执行。
- 动作会加载一个数据模型,或许是来自数据库。
- 动作会渲染一个视图,把数据模型提供给它。
- 渲染结果返回给响应组件。
- 响应组件发送渲染结果给用户浏览器。