2.1、框架加载和运行流程
Yii框架加载和运行流程共分4个阶段(也许看着有点吓人,木有关系,我们先知道一个大概):
Step1:WebApp初始化与运行
1.1、 加载YiiBase.php,安装autoload方法;加载用户的配置文件;
1.2、 创建WebApp应用,并对App进行初始化,加载部分组件,最后执行WebApp
Step2:控制器初始化与运行
2.1、 加载request组件,加载Url管理组件,获得路由信息route=ControllerId/ActionId
2.2、 创建出控制器实例,并运行控制器
Step3:控制器初始化与运行
3.1、 根据路由创建出Action
3.2、 根据配置,创建出该Action的Filter;
3.3、 执行Filter和Action
Step4:渲染阶段
4.1、 渲染部分视图和渲染布局视图
4.2、 渲染注册的javascript和css
2.2、YiiBase静态类
YiiBase为YII框架的运行提供了公共的基础功能:别名管理与对象创建管理。
在创建一个php的对象时,需要先include这个类的定义文件,然后再new这个对象。在不同环境下(开发环境/测试环境/线上环境),apache的webroot路径的配置可能不一样,所以这个类的定义文件的全路径就会不同,Yii框架通过YiiBase的别名管理来解决了这个问题。
在创建对象时,需要导入对应类的定义,经常需要使用这5个函数:include()、include_once()、require()、require_once()、set_include_path()。Yii通过使用YiiBase::import()来统一解决这个问题。下图描述了YiiBase提供“别名管理与对象创建管理”的工作原理:
。。。。。