2008-10-20 73 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