2008-10-20 70 views
31

我工作的一個自定義的CMS爲我所用,並考慮實施一個插件系統,所以我可以擴展的代碼更容易一些。儘管我在構思和佈局方面有困難。建立一個插件系統用PHP

我知道我可以去通過實施類似特性的一些開放源代碼程序,但這真的只是學術界在這一點上,所以我真的不想花太多時間,通過外來代碼挖掘。

有誰有如何進行任何好的想法?如果有人能夠概述一些更受歡迎的程序是如何完成的。

+0

你能提供你自己的這個問題的見解?自從您提出這個問題已經有一段時間了,我很想知道您從編寫自定義php CMS的經驗中學到了哪些最重要的方面。 – 2016-01-15 13:55:14

回答

31
  1. 定義你想要的插件插入(即,他們會怎麼做,在什麼)
  2. 定義一個類層次結構上的插件配合一樣,所有的文章重整插件應該從ArticleMangler
  3. 繼承功能
  4. 定義一個物理位置的插件,像/插件出現在位置
  5. 二者必選其一DecoratorObserver模式注入插件的行爲或事件occurence通知插件
  6. 導入所有插件。在某些情況下,Strategy也可能適用。

如果你不小心的話,PHP使得這項工作相當容易,而且成本很高。我喜歡觀察者方法,其中插件將自己註冊到插件管理器,通知他們發生了什麼並等待他們的行動發生。

如果你不信任的插件,那麼你就必須把添加了哪些事件會允許任何插件的註冊控件。

+0

對於有興趣,這裏的人是[一個最常用的設計模式的列表(https://github.com/domnikl/DesignPatternsPHP)。 – tleb 2015-09-12 19:36:05