永发信息网

为什么Yii2 框架要在控制器里面 init方法取代

答案:2  悬赏:60  手机版
解决时间 2021-01-07 14:19
为什么Yii2 框架要在控制器里面 init方法取代
最佳答案
在最顶层的Object类的构造函数可以看到

$this->init();

所以实例化类(只要继承Object或其子类),一般都会执行init这个方法,除非覆盖了构造函数,而且没执行父类的构造函数(不过这种情况,yii框架好像是没法正常工作的)。
注:这是Yii2框架里的,yii1.x版本的应该差不多,可以看下源代码
全部回答
因为控制器的基类需要__constuct()方法做一些初始化的工作(比如初始化模板引擎),如果你在控制器里实现了__construct,你还需要在__construct里调用parent::__construct()就太麻烦了。
所以通常会在基类里定义一个空的init方法,并且在__construct里(通常是末尾)调用$this->init(),这样开发的时候就只需要实现init方法
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有色冶炼行业中的特殊工种
怎样用蒸锅加热速冻食品?比如包子馒头面点之
CAD制图怎么设置画布大小?
电器柜潮湿怎么办呢
请周公解梦
lol怎么用a键走砍,是按一下a键,同时点击鼠
怎样将php里的汉字字符串分割成单个字符
海阳现场秀的主持人品牌打造
2008年丰田威驰1.3排量,这车维修贵吗,这个
could用在肯定句中表示委婉吗?
李紫鹤全国有多少
990年的2元钱现值多少钱
有没像国外那种遇到同样问题的人有个圈子互相
谁是法国的著名画家和设计家,被誉为"现代招
如何查QQ已删除的聊天记录
推荐资讯
描写下棋的诗句
知网上查重中“连续13个字算重复是什么意思?
dnf青龙大会尼马的这杨明怎么打啊
外地车第一次从番禺去广州大道中高德地图怎么
成都专业开发APP的公司有哪些?
曲奇用什么牌子的低筋面粉更好
王超凡语文113数学122总分643被华中科技大投
鸡跟什么东西在一起煮,煮熟的更快
披着狮子皮的毛驴后面有什么结尾
饭店里的馄饨汤是怎么做的放什么调料
唾弃什么意思。
7坐越野车可以加入滴滴吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?