真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

yii事件和行為有什么區(qū)別-創(chuàng)新互聯(lián)

這篇文章主要介紹yii事件和行為有什么區(qū)別,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

網(wǎng)站的建設(shè)創(chuàng)新互聯(lián)專(zhuān)注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開(kāi)發(fā).小程序定制開(kāi)發(fā),H5頁(yè)面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為集裝箱等企業(yè)提供專(zhuān)業(yè)服務(wù)。

個(gè)人覺(jué)得,在 Yii 里面,最難以明白的就是事件(Event)和行為(behavior)了。這不僅僅是因?yàn)樗鼈兊母拍畋容^難明,關(guān)鍵是它們的應(yīng)用場(chǎng)景比較難明,不知道什么時(shí)候應(yīng)該使用事件和行為來(lái)開(kāi)發(fā)。


事件

事件模型就是設(shè)計(jì)模式中的“觀(guān)察者模式”:當(dāng)對(duì)象的狀態(tài)發(fā)生了變化,那么這個(gè)對(duì)象可以將該事件通知其它對(duì)象。

為了使用事件模型,需要實(shí)現(xiàn)這三個(gè)步驟:             

1、定義事件;2、注冊(cè)事件句柄;3、觸發(fā)事件。

為什么要做這三個(gè)步驟呢?因?yàn)閷?duì)于 PHP 本身,它的執(zhí)行過(guò)程不是以進(jìn)程化來(lái)運(yùn)行的,

所以 Yii 的事件觸發(fā)機(jī)制不會(huì)像 ActionScript 3+ 那樣,直接將觸發(fā)事件。

有人說(shuō),Yii 的事件概念跟 js 中的事件概念差不多,因?yàn)?Yii 是將事件綁定到 Yii::app() 的執(zhí)行過(guò)程中。

行為

這里先重新描述一下為什么要使用行為。

有兩種辦法可以對(duì)類(lèi)添加特性:

1、直接修改這個(gè)類(lèi)的代碼,添加一些成員函數(shù)和成員變量;

2、派生,通過(guò)子類(lèi)來(lái)擴(kuò)展。

很明顯第二種方法更加易維護(hù)、易擴(kuò)展。但是如果需要對(duì)一個(gè)類(lèi)添加多個(gè)特性(多人在不同時(shí)期),那么需要進(jìn)行多級(jí)派生,這顯然加大了維護(hù)成本。

在 Yii 里面,通過(guò)行為類(lèi)綁定,組件將一個(gè)或多個(gè) CBehavior 類(lèi)的成員方法和成員變量添加到自己身上,并且在不需要的時(shí)候載掉某些 CBehavior 類(lèi)。

同時(shí),可以通過(guò)重寫(xiě) CBehavior::events 的方法,來(lái)實(shí)現(xiàn)對(duì)目標(biāo)類(lèi)的多個(gè)事件綁定。這些事件將會(huì)在當(dāng)前行為綁定到目標(biāo)類(lèi)的時(shí)候,一起被綁定上。

Yii2事件與行為總結(jié)

1)、事件用于在特定的時(shí)點(diǎn),觸發(fā)執(zhí)行預(yù)先設(shè)定的一段代碼,需要使用到事件的類(lèi),都繼承自 yii\base\Component。

2)、行為用于對(duì)類(lèi)的補(bǔ)充,通過(guò)將行為綁定到一個(gè)類(lèi),可以使類(lèi)具有行為本身所定義的屬性和方法,就好像類(lèi)本來(lái)就有這些屬性和方法一樣。

而且不需要寫(xiě)一個(gè)新的類(lèi)去繼承或包含現(xiàn)有類(lèi)。

以上是“yii事件和行為有什么區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前標(biāo)題:yii事件和行為有什么區(qū)別-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://weahome.cn/article/ejipg.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部