yii2 控制器的生命周期
控制器生命周期
http://www.yii-china.com/doc/guide/structure_controllers.html
处理一个请求时,应用主体 会根据请求路由创建一个控制器,控制器经过以下生命周期来完成请求:
- 在控制器创建和配置后,yii\base\Controller::init() 方法会被调用。
- 控制器根据请求操作ID创建一个操作对象:
- 如果操作ID没有指定,会使用yii\base\Controller::defaultAction默认操作ID;
- 如果在yii\base\Controller::actions()找到操作ID,会创建一个独立操作;
- 如果操作ID对应操作方法,会创建一个内联操作;
- 否则会抛出yii\base\InvalidRouteException异常。
- 控制器按顺序调用应用主体、模块(如果控制器属于模块)、控制器的
beforeAction()方法;- 如果任意一个调用返回false,后面未调用的
beforeAction()会跳过并且操作执行会被取消; action execution will be cancelled. - 默认情况下每个
beforeAction()方法会触发一个beforeAction事件,在事件中你可以追加事件处理操作;
- 如果任意一个调用返回false,后面未调用的
- 控制器执行操作:
- 请求数据解析和填入到操作参数;
- 控制器按顺序调用控制器、模块(如果控制器属于模块)、应用主体的
afterAction()方法;- 默认情况下每个
afterAction()方法会触发一个afterAction事件,在事件中你可以追加事件处理操作;
- 默认情况下每个
- 应用主体获取操作结果并赋值给响应
yii2 控制器的生命周期的更多相关文章
- iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一.基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉. 在stor ...
- iOS视图控制器的生命周期
今天面试有一道面试题因为回答不好,因为也不经常涉及所以有点模糊,我选择了最保守的回答,没有展开写出我对这个问题的理解. 问题:IOS 开发 loadView 和 viewDidLoad 的区别? 经过 ...
- 通俗易懂的讲解iphone视图控制器的生命周期
IOS 视图控制器的生命周期非常非常重要,所以我有必要写个文章来和大家一起探讨问题. 今天在学习视图控制器的生命周期,也看了一下网上的一些资料,但总觉得不是那么好理解,首先我们来看一张图: 先粗略讲一 ...
- iOS 控制器的生命周期(UIController)
前言: 在iOS开发中,控制器的生命周期非常重要,什么时候加载页面,什么时候请求接口,什么时候刷新界面等等,都有很多值得优化的地方 loadView: 最先执行的方法,控制器关联的有Nib文件的时候, ...
- iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法
#import "ViewController.h" #import "SecondViewController.h" @interface ViewContr ...
- 控制器view生命周期
控制器View的生命周期方法:只要是控制器的生命周期方法,都是以view开头. 控制器View加载完成时调用- (void)viewDidLoad { [super viewDidLoad];} 控制 ...
- ios 控制器的生命周期
#pragma mark - 控制器生命周期 // 视图将要出现 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:anima ...
- 1210笔记//关于导航实例-QQ空间//导航实例-storyboard实现//控制器的生命周期//控制器的生命周期方法
一.利用storyboard完成导航1.storyboard中用来跳转的每一根线 都是 一个 UIStoryboardSegue对象1> 自动跳转 (从 某个按钮 拖线到 下一个目的控制器) ...
- iOS控制器的生命周期分析和使用
转自http://blog.csdn.net/qijianli/article/details/7826979 iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面 ...
随机推荐
- 笔记本 T450的鼠标经常不灵
T450的鼠标经常不灵,鼠标总感觉有延迟. 换了鼠标也是这样. 有人反应说是USB断电, 使用的是省电模式,在设备管理>鼠标>电源选项>节电模式 勾去掉就可以了, 但是我的节点模式是 ...
- plsql 粘贴
plsql 粘贴
- c++builder XE7 C++11 C++0x 新语法
Non-static data member initializers 非静态成员变量初始化变得简单,这个XE7 64位编译成功,32位还是不支持 As a simple example, struc ...
- npm 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
- hibernate 解决并发问题
hibernate 解决并发问题的策略有 1)设置hibernate事务隔离级别 2)hibernate中乐观锁的实现 ps:版本号是由hibernate自己维护的,我们自己只需要做以上二步即可实现乐 ...
- hibernate中.常见的hql查询语句
hql是非常有意识的被设计为完全面向对象的查询 基本规则: 1.hql语法类似于sql,但它后面跟的不是表名和字段名,而是类名和属性名 2.hql大小写不敏感.但是设计java类名,包名,属性名时大小 ...
- Appium的inspector使用
使用inspectot可以对元素进行定位 1.设置appium的Android Settings,点击左上角的安卓图标进入安卓设置,注意设置时不要开启appium 说明: a)Application是 ...
- 禁止直接访问ashx页面
if (context.Request.ServerVariables["HTTP_REFERER"] == null) { ...
- SpringCloud 简单理解
0.SpringCloud,微服务架构.包括 服务发现(Eureka),断路器(Hystrix),服务网关(Zuul),客户端负载均衡(Ribbon).服务跟踪(Sleuth).消息总线(Bus).消 ...
- java并发:AQS的简单理解
简介: AQS全称 AbstractQueuedSynchronizer,提供了一个基于FIFO(先进先出)队列,可以用于构建锁或者其他相关同步装置的基础框架. ReentrantLock.Semap ...