setName('plugin:activate'); $this->setDescription('Activate a plugin.'); $this->addOptionalArgument('plugin', 'The plugin name you want to activate. Multiple plugin names can be specified separated by a space.', null, true); } protected function doExecute(): int { $input = $this->getInput(); $output = $this->getOutput(); $pluginManager = Manager::getInstance(); $plugins = $input->getArgument('plugin'); foreach ($plugins as $plugin) { if ($pluginManager->isPluginActivated($plugin)) { $output->writeln(sprintf('The plugin %s is already activated.', $plugin)); continue; } if (!$pluginManager->isPluginInFilesystem($plugin)) { $output->writeln("Cannot find plugin files for $plugin."); continue; } if ($dependencies = $pluginManager->loadPlugin($plugin)->getMissingDependenciesAsString()) { $output->writeln("$dependencies"); continue; } $pluginManager->activatePlugin($plugin); $output->writeln("Activated plugin $plugin"); } return self::SUCCESS; } }