release; } /** * {@inheritdoc} */ public function require_all_upgrades() { return false; } /** * {@inheritdoc} */ public function concern() { return $this->concern; } /** * {@inheritdoc} */ public function apply(base $appbox, Application $app) { foreach ($this->listPlugins($app) as $name => $plugin) { $app['conf']->set(['plugins', $name, 'enabled'], true); } } private function listPlugins(Application $app) { $finder = new Finder(); $finder ->depth(0) ->in($app['plugin.path']) ->directories(); $plugins = []; foreach ($finder as $pluginDir) { $manifest = $error = null; $name = $pluginDir->getBasename(); try { $manifest = $app['plugins.plugins-validator']->validatePlugin((string) $pluginDir); } catch (PluginValidationException $e) { $error = $e; } $plugins[$name] = new Plugin($name, $manifest, $error); } return $plugins; } }