2014-02-10 35 views
-3

我正在尋找方法來構建一個類似於Joomla和Wordpress等各種着名CMS的插件系統。如何在php中創建一個插件系統?

我正在尋找一個PHP基礎插件系統,輕鬆入門,並且不難理解和實現/集成。

這裏是我需要的是更多的細節: 我們已經建立了一個商業Web應用程序。在這個網絡應用程序中,我們的客戶要求我們添加使用基於插件的系統進行擴展的工具,以便其他開發人員可以開發新功能並擴展應用程序。

該系統應該允許開發人員在一個或多個文件和zip中構建特性/功能,然後安裝它們。在安裝時,編程的功能應自動顯示在覈心應用程序中。

該插件應該同時支持後端和前端接口。

如果該功能不是必需的,那麼只能刪除插件,功能應該消失!

我已經在網上搜索了這個,也厭倦了研究WordPress的插件系統,看看我是否可以集成類似的功能,但不幸的是,這對我來說太複雜了,讓我理解並試着實現它!

TIA

瑜珈楊

+0

問題要求我們推薦或__查找工具___,庫或最喜歡的非現場資源是堆棧溢出的主題。 – naththedeveloper

+0

同意主題,但回答這樣一個系統並不存在的問題。你正在尋找的是一個PHP開發人員框架,嘗試codeigniter或類似的東西。 – tremor

+0

構建一個。這種事通常不是你可以從架子上取下來的東西,因爲它通常需要核心應用程序代碼中的「鉤子」或事件處理程序。一個基本的解決方案是在您的代碼中實現一些鉤子,並讓您的插件將自定義函數附加到這些鉤子。然後用['call_user_func()'](http://uk3.php.net/function.call-user-func)調用它們。 – naththedeveloper

回答

2

這太籠統了這樣一個網站的問題。有很多不同的方式來創建一個插件系統,他們都有其相對優勢&的弱點。

欲瞭解更多關於WordPress API如何工作的信息,請閱讀publish-subscribe pattern。 WordPress有一套actionsfilters,它在處理頁面時調用,插件可以註冊他們對接收有關這些事件的通知的興趣。

Drupal的插件體系結構很相似,但它依賴於具有與它們交互的鉤子相對應的特定名稱的函數,並且Drupal構建了插件在激活時支持哪些功能的索引。這往往會更快,但不太靈活,並且以我們一些人不習慣的方式來結合代碼數據庫。

但是要回到通用答案的範圍,您需要定義一組您的應用程序生成的信號/事件,以及插件註冊他們對操作(操作)或修改默認操作的興趣的方式(過濾器)。然後,您記錄該API,以便人們可以圍繞它設計代碼。其餘(如解壓縮文件)只是實現細節。

+0

感謝您的指點。你讓我開始了。 :) –