在 PHP 应用程序中实现插件的设计模式
2022-08-30 17:52:01
对于如何在PHP应用程序中实现插件是否有共识?
我已经研究了接近的观察者模式,它实际上只是一个通知系统,不允许代码直接扩展应用程序。我目前正在使用我想出的一个简单的钩子系统:
public function registerHook($hookName, array $params = array())
{
$this->hooks[] = $hookName;
foreach ( $this->plugins as $pluginName => $hooks ) {
if ( in_array($hookName, $hooks) ) {
$plugin = new $pluginName($this, $this->view, $this->controller);
$plugin->{$hookName}($params);
}
}
}
这对于我的目的来说效果很好,但我很好奇是否有一种设计模式已经过多次测试和验证,我只是在重新发明轮子。