2

可能重复:
允许 PHP 应用程序插件的最佳方式
PHP Event-Listener 最佳实践实现

我正在用 PHP 构建一个简单的类似 CMS 的应用程序,它应该允许管理员通过插件(从管理区域内)启用附加功能。

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

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

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

4

0 回答 0