一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php教程 插件機制在PHP中實現方案

php教程 插件機制在PHP中實現方案

2020-01-16 13:51PHP教程網 PHP教程

PHP中插件機制的一種實現方案. 這篇文章的出發點是我對插件機制的理解,及其在PHP中的實現。此方案僅是插件機制在PHP中的

提示:PHP中插件機制的一種實現方案.

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

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

一個健壯的插件機制,我認為必須具備以下特點:

插件的動態監聽和加載(Lookup)

插件的動態觸發

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

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

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

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

下面進行PHP中插件機制的核心實現,整個機制核心分為三大塊:

一個插件經理類:這是核心之核心。它是一個應用程序全局Global對象。它主要有三個職責:

負責監聽已經注冊了的所有插件,并實例化這些插件對象。

負責注冊所有插件。

當鉤子條件滿足時,觸發對應的對象方法。

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人精品高清免费 | 青草视频在线观看免费资源 | 日本中文字幕在线观看视频 | 亚洲成综合人影院在院播放 | 亚洲国产精品综合欧美 | 男人肌肌捅女人 | 搡60一70岁的老女人小说 | 嫩草香味| 刺激一区仑乱 | 欧美一卡2卡三卡4卡5卡免费观看 | 九九艹 | 亚洲精品国产精品国自产观看 | 51精品| 啪啪无尽3d动漫漫画免费网站 | 小早川怜子亚洲综合中文字幕 | 日本四虎影视 | 国产香蕉97碰碰在线视频 | 免费α片 | 99免费在线视频 | 亚洲 欧美 在线观看 | 国产欧美综合一区二区 | 粉嫩尤物在线456 | 日产中文乱码卡一卡二 | 韩国成人毛片aaa黄 含羞草国产亚洲精品岁国产精品 | 日韩欧美一区二区三区四区 | 逼逼爱 | 亚洲国产精品久久久久久网站 | 驯服有夫之妇HD中字日本 | 免费一级欧美片在线观免看 | 欧美高清在线 | 激情小视频网站 | 9l国产精品久久久久麻豆 | 男人天堂资源网 | 久久国产综合精品欧美 | a天堂视频 | 亚洲黄色成人 | 亚洲青草 | 日本啊v在线观看 | 欧美milk大超乳 | 国产欧美一区二区三区免费看 | 草莓香蕉绿巨人丝瓜榴莲污在线观看 |