关于如何在PHP应用程序中实现插件有共识吗?在PHP应用程序中实现插件的设计模式
我看了一下observer pattern,它实际上只是一个通知系统,不允许代码直接扩展应用程序。我目前使用的是我想出了一个简单的吊钩系统:
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);
}
}
}
这非常适用于我的目的,但我很好奇,如果有一个设计模式,在那里,已经过测试和验证过很多次,我只是在重新发明轮子。
我建议看看它如何与Wordpress工作。我不知道我自己,但我有一种感觉,它使用钩子,BOY wordpress有很多插件。好问题,upvoted。 – Relequestual 2012-02-11 23:48:50
@Relequestual我熟悉WordPress,他们采取了一种程序性的方法与“行动”。 http://codex.wordpress.org/Function_Reference/add_action – 2012-02-12 00:00:56
我要说这个问题不是一个骗局,但在某种程度上它是。似乎共识是在这里讨论http://stackoverflow.com/questions/42/best-way-to-allow-plugins-for-a-php-application – Relequestual 2012-02-12 00:04:33