Существует ли консенсус относительно того, как плагины должны быть реализованы в приложении 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);
}
}
}
Это хорошо работает для моих целей, но мне любопытно, есть ли там образец дизайна, который был проверен и проверен много раз, и я просто повторно изобретаю колесо.