private static function load_plugin(ContextManager $context, DirectoryIterator $plugin_path) { $plugin_load_file = $plugin_path->getPathname() . DIRECTORY_SEPARATOR . 'init.php'; if ($plugin_path->isDir() && is_file($plugin_load_file) && (require $plugin_load_file)) { $class = Plugins::plugin_class_name($plugin_path); try { $klass = new ReflectionClass($class); Plugins::add($klass->newInstance($context)); $context->logger()->debugf('%s --> %s', str_replace(MEDICK_PATH, '${' . $context->config()->application_name() . '}', $plugin_load_file), $class); } catch (ReflectionException $rfEx) { $context->logger()->warn('failed to load plugin `' . $plugin_path->getFilename() . '`: ' . $rfEx->getMessage()); } } }