用php构建一个插件系统

时间:2008-10-20 06:41:55

标签: php plugins

我正在为自己使用自定义CMS,并且正在考虑实现插件系统,以便我可以更轻松地扩展代码。我在构思架构和布局方面遇到了麻烦。

我知道我可以通过一些实现类似功能的开源程序,但这实际上只是学术上的,所以我真的不想花太多时间挖掘外国代码。

有没有人对如何进行有任何好的想法?如果有人可以概述一些更受欢迎的程序如何做到这一点是完美的。

1 个答案:

答案 0 :(得分:35)

  1. 定义您希望插件插入的功能(即,他们将做什么以及将做什么)
  2. 定义插件适合的类层次结构,例如,所有文章修改插件应该从ArticleMangler继承
  3. 定义插件的物理位置,例如/ plugins
  4. 导入位置中的所有插件
  5. 使用DecoratorObserver模式注入插件的行为或通知插件事件发生。 Strategy也适用于某些情况。
  6. 如果你不小心的话,PHP可以很容易地造成混乱。我喜欢Observer方法,其中插件将自己注册到插件管理器,通知他们发生了什么并等待他们的操作发生。

    如果您不信任插件,那么您必须添加控件,以允许您允许任何插件注册的事件。