谁一开始就是大神?

哪位大神能够讲解下beforeAction和construct和init的区别啊[2.0]

个人理解是这样的
beforeAction 请求当前控制器时 会首先去执行beforeAction 这个方法 做出过滤验证之类的操作
construct 实例化的时候执行
init 一般在模块中初始化操作? 不能在控制器中用吗?没有试过

从本质上来说,区别就是方法名 和 触发的顺序不同。
如你所说的,在接收到请求并解析时,首先会实例化相关类文件
即首先执行 __construct 中的逻辑代码
根据框架的源码来看,第二步是执行 init 中的逻辑代码
再到 beforeAction
最后才是请求对应的控制器中的actionXxx 。
当然所有的方法都是可以通过继承的方式修改,只需符合框架的逻辑执行顺序即可。 有疑问的话不妨多测试测试
就如你所说,差不多是这样
那你答对了
construct函数的最后一行调用了init()方法,源码参考yii\base\Object
建议从$application->run开始看看整体的流程,看完你就会发现一切都是浮云,当然设计出这道框架的人肯定时拥有不少项目经验的。也可以从 深入了解Yii2开始看起,(搜索关键词。

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 哪位大神能够讲解下beforeAction和construct和init的区别啊[2.0]

评论 抢沙发

登录

找回密码

注册