PHP中的插件架构

时间:2012-10-05 15:09:55

标签: php plugins

  

可能重复:
  Best way to allow plugins for a PHP application
  PHP Event-Listener best-practice implementation

我正在PHP中构建一个类似CMS的简单应用程序,它允许管理员通过插件(来自管理区域)启用其他功能。

目前它基于观察者模式,它的工作原理如下:

  • 每个插件必须扩展一个抽象类
  • 除了一个“init”方法之外,插件(子类)定义的所有方法都被视为观察者。
  • 抽象类的构造函数是final,它使用get_class_methods将这些观察者映射到事件。
  • 从应用程序启动到结束它将通知这些观察者其事件,如app_start / process_request / app_end等,并使用应用程序实例执行观察者函数作为第一个参数,因为应用程序也像服务容器一样,插件可以用来访问其他组件,例如db。

这是在PHP中实现插件架构的好方法吗?还是有更好的方法? 我已经运行了这个,但是当我在抽象类中添加新的API时,子类可以使用它开始感觉很奇怪:)

0 个答案:

没有答案