亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么Yii2 框架要在控制器里面 init方法取代__construct構造方法?

為什么Yii2 框架要在控制器里面 init方法取代__construct構造方法?

Yii
慕標5832272 2018-08-09 08:28:09
為什么Yii2 框架要在控制器里面 init方法取代__construct構造方法?thinkphp里面也是如此,控制器里面用 __init**方法取代了__construct?有哪些必要性和好處呢??
查看完整描述

2 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

我剛才在yii2 2.0.6版本里面,__construct方法里面不能使用

Url::toRout('index/index')

因為控制器在構造方法執行完畢后才會注冊。
你只能在前置操作里面操作,也就是你所謂的__ini*()方法。
也就是說,前置方法能得到一個系統級初始化完畢后的系統,構造方法不是。
前置方法并沒有取代構造方法
構造方法總是會執行,前置方法在內部調用時候不會執行,只對訪問控制器有效。


查看完整回答
反對 回復 2018-08-12
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

因為控制器的基類需要__constuct()方法做一些初始化的工作(比如初始化模板引擎),如果你在控制器里實現了__construct,你還需要在__construct里調用parent::__construct()就太麻煩了。
所以通常會在基類里定義一個空的init方法,并且在__construct里(通常是末尾)調用$this->init(),這樣開發的時候就只需要實現init方法

查看完整回答
反對 回復 2018-08-12
  • 2 回答
  • 0 關注
  • 1439 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號