解析phpwind的外掛程式體系

2021-06-17 22:52:06 字數 2184 閱讀 3679

看phpwind的官方**,發現有個很重要版塊為「phpwind 外掛程式開發」,第一感覺是phpwind有個很完善的外掛程式體系,吸引開發者來基於外掛程式體系進行二次開發。於是乎我饒有興趣地解析一下phpwind的外掛程式體系的實現。我先說說在我看來外掛程式體現比較重要的兩個特徵:

對於第乙個特徵phpwind體現得還不錯,在後台有個專門的欄目是管理外掛程式,能夠對放在hack目錄下的外掛程式進行安裝和解除安裝,而外掛程式本身的屬性(info.xml)、管理介面(admin.php)、功能介面(index.php)就需要在外掛程式子目錄下進行專門的開發,只需要按照規定的檔名進行命名就行,乙個典型的外掛程式目錄結構如下圖所示:

其實phpwind的外掛程式管理功能實現很簡單,也就是分析hack目錄下所有子資料夾的目錄結構,解析出所有外掛程式,介面上顯示的外掛程式名稱來自於各個外掛程式目錄下的info.xml,而對每個外掛程式的管理配置都是各個外掛程式目錄下admin.php,外掛程式的各個屬性有個類似於key-value的名字為hack的表來儲存。

但對於第二個特徵,phpwind就做得很粗,對於使用者自定義的外掛程式,phpwind只提供整個外掛程式通過url的訪問,而不能把外掛程式插到既有的功能流程中去。官方提供的外掛程式「評價」可以插入到發帖等既有流程中,但實現的方式確是在「read.php」源**裡硬生生的加入了對評價的支援,如:

[php]view plain

copy

//評價功能開啟

$ratesets

= unserialize(

$db_ratepower

);  

if(!

$forumset

['rate'

] && 

$ratesets

[1] && isset(

$db_hackdb

['rate'

]))  

因此想通過外掛程式的方式來改造既有功能就無門了。對於自製的外掛程式,phpwind只能通過root_url/hack.php?h_name=plugin_name,看hack.php的原始碼,發現實現非常簡單,僅僅就是通過plugin_name把外掛程式目錄下的index.php require進來,原始碼如下:

因此,只能說phpwind的外掛程式體系是個很簡陋的玩意,只是簡單的幫你管理一下你自己的**,讓它從目錄結構上表現得規矩一點,如果真的希望通過使用者開發外掛程式來加強或定製已存在的功能,就需要深入到各個主要功能流程中,在流程的各個環節加入插入點,讓使用者的自定義外掛程式能真正深入其中。

解析phpwind的外掛程式體系

看phpwind的官方 發現有個很重要版塊為 phpwind 外掛程式開發 第一感覺是phpwind有個很完善的外掛程式體系,吸引開發者來基於外掛程式體系進行二次開發。於是乎我饒有興趣地解析一下phpwind的外掛程式體系的實現。我先說說在我看來外掛程式體現比較重要的兩個特徵 對於第乙個特徵phpw...

關於新手PHPWind外掛程式開發的啟示

這段時間以來,一直接觸phpwind,所以在此給剛接觸的朋友分享一些自己學習的心得,以下主要講下外掛程式開發相關方面的內容及原始專案檔案修改的一些注意點 1 關於外掛程式開發 首先可以瀏覽下官方的教程 不過,可能官方的教程有些地方剛入手的時候會不太明白,在此做下解釋。admin.php,info.x...

phpwind外掛程式開發框架與常用函式

外掛程式結構 所有外掛程式被放置在 hack 目錄下管理。一般外掛程式包含以下幾個檔案 1 info.xml 外掛程式預設安裝基本資訊 2 admin.php 外掛程式後台管理 程式頁面 3 index.php 外掛程式前台執行 程式頁面 4 template 外掛程式所需模板檔案 此資料夾一般包含...