diff --git a/plugins/plugin.php b/plugins/plugin.php index 35d9c931..8b0a0264 100644 --- a/plugins/plugin.php +++ b/plugins/plugin.php @@ -8,10 +8,18 @@ class AdminerPlugin extends Adminer { var $plugins; - /** - * @param array + /** Register plugins + * @param array object instances or null to register all classes starting by 'Adminer' */ function AdminerPlugin($plugins) { + if (!isset($plugins)) { + $plugins = array(); + foreach (get_declared_classes() as $class) { + if (preg_match('~^Adminer(?!Plugin|$)~i', $class) && $class != get_class($this)) { // can use interface since PHP 5 + $plugins[$class] = new $class; + } + } + } $this->plugins = $plugins; // it is possible to use ReflectionObject in PHP 5 to find out which plugins defines which methods at once }