YII2.0生存时间简单总结

    xiaoxiao2025-08-27  8

    一.初始化

    (一)构造函数

    Yii::$app->loadedModules 将自己装入这个属性中[属性的属性]初始化配置[路径;时区;将核心组件装入components配置中]注入异常处理类[涉及到了_components[存对象]和_definitions[存id=>和各种属性包括class]以及各种创建对象的方法]通过Yii::configure($this, $config);将所有配置中的属性加载到 yii\web\Application实例中从子类中执行init()

    (二)init()

    设置网址目录别名

    再次加载别名

    加载bootstrap => log

    二 . run

    (一).yii\web\Application::handleRequest处理请求

    1.将当前请求解析为路由和相关参数 2.runAction     1.createController         1.获取模块Module         2.递归获取控制器[在创建控制器的时候就实例化控制器的方法了,但是还未执行beforeAction]     2.通过获取的控制器和方法处理 业务[获取执行结果]         1.yii\base\Module::runAction中$result = $controller->runAction($actionID, $params);后才会执yii\base\Controller::runAction             1.创建行为 并将创建的行为放入Yii::$app->requestedAction             2.执行module的beforeAction 只要有一个是false就不再执行控制器的beforeAction             3.执行控制器的BeforeAction,放回true才执行下边,否则直接跳出             4.$action->runWithParams($params)执行控制器方法并获取结果             5.$result = $this->afterAction($action, $result);执行控制器的afterAction[业务控制器会覆盖父类的]             6.执行module中的afterAction     3.将上边的结果给响应对象的data属性[如果上边结果不为null] 3.响应! 4.结束

    最新回复(0)