成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP-AOP擴(kuò)展

fasss / 2591人閱讀

摘要:可以實(shí)現(xiàn)非常好的模塊低耦合。未來(lái)如果增加了新的模塊,比如。這種做法顯然是侵入性的。但遠(yuǎn)沒(méi)有強(qiáng)大,而且還需要不斷加入的遍歷點(diǎn)。如果編程的話,只需要外部注入一個(gè)函數(shù),執(zhí)行時(shí),就會(huì)執(zhí)行指定的代碼。

項(xiàng)目地址:http://pecl.php.net/package/AOP

首先介紹下AOP編程,也叫做面向切面編程,是一種非侵入式編程的方法,采用外部注入的方式來(lái)取代嵌入代碼??梢詫?shí)現(xiàn)非常好的模塊低耦合。

假設(shè)你的框架有一個(gè) Frameworkd::init方法,功能是初始化框架資源?,F(xiàn)在有db,template的初始化也需要在這個(gè)階段執(zhí)行,傳統(tǒng)的做法就是只能修改 Framework::init在里面加入 db,template的方法調(diào)用。未來(lái)如果增加了新的模塊,比如cache。那就需要修改Frameworkd::init的代碼。這種做法顯然是侵入性的。

當(dāng)然也可以用hook list的方式來(lái)實(shí)現(xiàn)。在需要外部注入的地方加入一個(gè)hook list,遍歷執(zhí)行外部注入的接口。但遠(yuǎn)沒(méi)有AOP強(qiáng)大,而且還需要不斷加入hook list的遍歷點(diǎn)。

如果AOP編程的話,只需要外部注入一個(gè)函數(shù),執(zhí)行 Framework::init時(shí),就會(huì)執(zhí)行指定的代碼。

doAdmin*()", "adviceForDoAdmin");
aop_add_after("MyServices->doAdmin*()", "adviceForDoAdmin2");
$o = new MyServices;
$o->doAdminStuff1();
$o->doAdminStuff2();

執(zhí)行結(jié)果:

Calling doAdminStuff1
AOP[2] Run
AOP[1] Run
Calling doAdminStuff2
AOP[2] Run
AOP[1] Run

轉(zhuǎn)自http://rango.swoole.com/archi...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29298.html

相關(guān)文章

  • 聊聊Dubbo - Dubbo可擴(kuò)展機(jī)制實(shí)戰(zhàn)

    摘要:今天我想聊聊的另一個(gè)很棒的特性就是它的可擴(kuò)展性。的擴(kuò)展機(jī)制在的官網(wǎng)上,描述自己是一個(gè)高性能的框架。接下來(lái)的章節(jié)中我們會(huì)慢慢揭開(kāi)擴(kuò)展機(jī)制的神秘面紗。擴(kuò)展擴(kuò)展點(diǎn)的實(shí)現(xiàn)類(lèi)。的定義在配置文件中可以看到文件中定義了個(gè)的擴(kuò)展實(shí)現(xiàn)。 摘要: 在Dubbo的官網(wǎng)上,Dubbo描述自己是一個(gè)高性能的RPC框架。今天我想聊聊Dubbo的另一個(gè)很棒的特性, 就是它的可擴(kuò)展性。 Dubbo的擴(kuò)展機(jī)制 在Dub...

    techstay 評(píng)論0 收藏0
  • Yii修行之路 - Extension 擴(kuò)展

    摘要:運(yùn)行來(lái)安裝指定的擴(kuò)展。這更便于用戶辨別是否是的擴(kuò)展。當(dāng)用戶運(yùn)行安裝一個(gè)擴(kuò)展時(shí),文件會(huì)被自動(dòng)更新使之包含新擴(kuò)展的信息。上述代碼表明該擴(kuò)展依賴于包。例如,上述的條目聲明將對(duì)應(yīng)于別名。為達(dá)到這個(gè)目的,你應(yīng)當(dāng)在公開(kāi)發(fā)布前做測(cè)試。 簡(jiǎn)述 擴(kuò)展是專門(mén)設(shè)計(jì)的在 Yii 應(yīng)用中隨時(shí)可拿來(lái)使用的, 并可重發(fā)布的軟件包。 基礎(chǔ) 例如, yiisoft/yii2-debug 擴(kuò)展在你的應(yīng)用的每個(gè)頁(yè)面底部添加...

    bovenson 評(píng)論0 收藏0
  • MySQL - 擴(kuò)展性 1 概述:人多未必力量大

    摘要:容量和可擴(kuò)展性并不依賴于性能。容量是車(chē)道乘以最大安全時(shí)速。至此,關(guān)于擴(kuò)展性的概念描述告一段落。但現(xiàn)實(shí)是誒,小九啊,咱們系統(tǒng)提升下性能要多久啊三天應(yīng)該差不多了吧,最多不能超過(guò)一周,上次提升性能,小六一天就搞定了的。 我們應(yīng)該接觸過(guò)或者聽(tīng)說(shuō)過(guò)數(shù)據(jù)庫(kù)的性能瓶頸問(wèn)題。對(duì)于一個(gè)單機(jī)應(yīng)用而言,提升數(shù)據(jù)庫(kù)性能的最快路徑就是氪金 - 買(mǎi)更高性能的數(shù)據(jù)庫(kù)服務(wù)器,只要錢(qián)到位,性能不是問(wèn)題。 但是當(dāng)系統(tǒng)性能...

    Cciradih 評(píng)論0 收藏0
  • MySQL - 擴(kuò)展性 1 概述:人多未必力量大

    摘要:容量和可擴(kuò)展性并不依賴于性能。容量是車(chē)道乘以最大安全時(shí)速。至此,關(guān)于擴(kuò)展性的概念描述告一段落。但現(xiàn)實(shí)是誒,小九啊,咱們系統(tǒng)提升下性能要多久啊三天應(yīng)該差不多了吧,最多不能超過(guò)一周,上次提升性能,小六一天就搞定了的。 我們應(yīng)該接觸過(guò)或者聽(tīng)說(shuō)過(guò)數(shù)據(jù)庫(kù)的性能瓶頸問(wèn)題。對(duì)于一個(gè)單機(jī)應(yīng)用而言,提升數(shù)據(jù)庫(kù)性能的最快路徑就是氪金 - 買(mǎi)更高性能的數(shù)據(jù)庫(kù)服務(wù)器,只要錢(qián)到位,性能不是問(wèn)題。 但是當(dāng)系統(tǒng)性能...

    null1145 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<