php教程 外掛程式機制在PHP中實現方案_PHP教程

來源:互聯網
上載者:User
提示:PHP中外掛程式機制的一種實現方案.

這篇文章的出發點是我對外掛程式機制的理解,及其在PHP中的實現。此方案僅是外掛程式機制在PHP中的實現方案之一,寫下來和大家分享,歡迎大家一起討論。

外掛程式,亦即Plug-in,是指一類特定的功能模組(通常由第三方開發人員實現),它的特點是:當你需要它的時候啟用它,不需要它的時候禁用/刪除它;且無論是啟用還是禁用都不影響系統核心模組的運行,也就是說外掛程式是一種非侵入式的模組化設計,實現了核心程式與外掛程式程式的鬆散耦合。一個典型的例子就是Wordpress中眾多的第三方外掛程式,比如Akimet外掛程式用於對使用者的評論進行Spam過濾。

一個健壯的外掛程式機制,我認為必須具備以下特點:

外掛程式的動態監聽和載入(Lookup)
外掛程式的動態觸發

以上兩點的實現均不影響核心程式的運行

要在程式中實現外掛程式,我們首先應該想到的就是定義不同的鉤子(Hooks);“鉤子”是一個很形象的邏輯概念,你可以認為它是系統預留的外掛程式觸發條件。它的邏輯原理如下:當系統執行到某個鉤子時,會判斷這個鉤子的條件是否滿足;如果滿足,會轉而先去調用鉤子所制定的功能,然後返回繼續執行餘下的程式;如果不滿足,跳過即可。這有點像彙編中的“中斷保護”邏輯。

某些鉤子可能是系統事先就設計好的,比如之前我舉的關於評論Spam過濾的鉤子,通常它已經由核心系統開發人員設計進了評論的處理邏輯中;另外一類鉤子則可能是由使用者自行定製的(由第三方開發人員制定),通常存在於表現層,比如一個普通的PHP表單顯示頁面中。

可能你感覺上面的話比較無聊,讓人昏昏欲睡;但是要看懂下面我寫的代碼,理解以上的原理是必不可少的。

下面進行PHP中外掛程式機制的核心實現,整個機制核心分為三大塊:

一個外掛程式經理類:這是核心之核心。它是一個應用程式全域Global對象。它主要有三個職責:

負責監聽已經註冊了的所有外掛程式,並執行個體化這些外掛程式對象。
負責註冊所有外掛程式。
當鉤子條件滿足時,觸發對應的對象方法。

外掛程式的功能實現:這大多由第三方開發人員完成,但需要遵循一定的規則,這個規則是外掛程式機制所規定的,因外掛程式機制的不同而不同,下面的顯示代碼你會看到這個規則。

外掛程式的觸發:也就是鉤子的觸發條件。具體來說這是一小段代碼,放置在你需要外掛程式實現的地方,用於觸發這個鉤子。

http://www.bkjia.com/PHPjc/326152.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/326152.htmlTechArticle提示:PHP中外掛程式機制的一種實現方案. 這篇文章的出發點是我對外掛程式機制的理解,及其在PHP中的實現。此方案僅是外掛程式機制在PHP中的實現方案...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.