控制器生命周期

http://www.yii-china.com/doc/guide/structure_controllers.html

处理一个请求时,应用主体 会根据请求路由创建一个控制器,控制器经过以下生命周期来完成请求:

  1. 在控制器创建和配置后,yii\base\Controller::init() 方法会被调用。
  2. 控制器根据请求操作ID创建一个操作对象:
    • 如果操作ID没有指定,会使用yii\base\Controller::defaultAction默认操作ID;
    • 如果在yii\base\Controller::actions()找到操作ID,会创建一个独立操作;
    • 如果操作ID对应操作方法,会创建一个内联操作;
    • 否则会抛出yii\base\InvalidRouteException异常。
  3. 控制器按顺序调用应用主体、模块(如果控制器属于模块)、控制器的 beforeAction() 方法;
    • 如果任意一个调用返回false,后面未调用的beforeAction()会跳过并且操作执行会被取消; action execution will be cancelled.
    • 默认情况下每个 beforeAction() 方法会触发一个 beforeAction 事件,在事件中你可以追加事件处理操作;
  4. 控制器执行操作:
    • 请求数据解析和填入到操作参数;
  5. 控制器按顺序调用控制器、模块(如果控制器属于模块)、应用主体的 afterAction() 方法;
    • 默认情况下每个 afterAction() 方法会触发一个 afterAction 事件,在事件中你可以追加事件处理操作;
  6. 应用主体获取操作结果并赋值给响应

最新文章

  1. 网站里加入QQ在线客服
  2. office 365 Sharepoint 2013
  3. 【7集iCore3基础视频】7-7 Qt5.2.1安装
  4. SharePoint 2010 人员选择器搜索范围的限定
  5. C++混合编程之idlcpp教程Lua篇(4)
  6. Egret Engine(白鹭引擎)介绍及windows下安装
  7. BC#32 1002 hash
  8. Oracle后台进程
  9. 【转】七个例子帮你更好地理解 CPU 缓存
  10. 原生js数组
  11. tps 与 事务平均响应时间关系对答
  12. JavaScript:['1','2','3'].map(parseInt)问题解析
  13. Android studio Error: Modules no specified解决和真机调试
  14. idea 的一些基本的配置
  15. 如何通过代码审计挖掘REDos漏洞
  16. Beta版测试报告
  17. Spring框架中的Quartz定时任务使用笔记(通过@Scheduled注解的方式实现)
  18. istio prometheus预警Prometheus AlertManager
  19. 【题解】Friends
  20. 7. mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句

热门文章

  1. Android Studio 如何切换sdk
  2. 基于jquery的相册预览gallery
  3. 记录一下Swift3.0的一些代码格式的变化
  4. DataGridview动态添加列
  5. Oracle RAC LoadBalance
  6. HTML超出文本多行截取代码
  7. jQuery中的类型判断
  8. 彩色图像--色彩空间 HSI(HSL)、HSV(HSB)
  9. 用SIM900上传云端数据(原创KEKE)
  10. ES2015也就是ES6知识点持续更新
  11. tomcat 网页管理tomcat
  12. 连阿里都在用它处理亿万级数据统计,论其对Java程序员的重要性!
  13. 学习Python第七天
  14. Java中主类中定义方法加static和不加static的区别
  15. android 去掉主题
  16. C#中利用LightningChart绘制曲线图表
  17. [转]Java学习---7大经典的排序算法总结实现
  18. HDU1506(真心不错的DP)
  19. JS (function (window, document, undefined) {})(window, document)的真正含义
  20. (深搜)Oil Deposits -- hdu -- 1241