可能重复:
Best way to allow plugins for a PHP application
PHP Event-Listener best-practice implementation
我正在PHP中构建一个类似CMS的简单应用程序,它允许管理员通过插件(来自管理区域)启用其他功能。
目前它基于观察者模式,它的工作原理如下:
get_class_methods
将这些观察者映射到事件。app_start
/ process_request
/ app_end
等,并使用应用程序实例执行观察者函数作为第一个参数,因为应用程序也像服务容器一样,插件可以用来访问其他组件,例如db。这是在PHP中实现插件架构的好方法吗?还是有更好的方法? 我已经运行了这个,但是当我在抽象类中添加新的API时,子类可以使用它开始感觉很奇怪:)