/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $plugins = $this->getPlugins(); // @see use Drupal\Console\Command\ConfirmationTrait::confirmGeneration if (!$this->confirmGeneration($io)) { return; } $module = $input->getOption('module'); $pluginId = $input->getOption('plugin-id'); $plugin = ucfirst($this->stringConverter->underscoreToCamelCase($pluginId)); // Confirm that plugin.manager is available if (!$this->validator->validatePluginManagerServiceExist($pluginId, $plugins)) { throw new \Exception(sprintf($this->trans('commands.generate.plugin.skeleton.messages.plugin-dont-exist'), $pluginId)); } if (array_key_exists($pluginId, $this->pluginGeneratorsImplemented)) { $io->warning(sprintf($this->trans('commands.generate.plugin.skeleton.messages.plugin-generator-implemented'), $pluginId, $this->pluginGeneratorsImplemented[$pluginId])); } $className = $input->getOption('class'); $services = $input->getOption('services'); // @see use Drupal\Console\Command\Shared\ServicesTrait::buildServices $buildServices = $this->buildServices($services); $pluginMetaData = $this->getPluginMetadata($pluginId); $this->generator->generate($module, $pluginId, $plugin, $className, $pluginMetaData, $buildServices); $this->chainQueue->addCommand('cache:rebuild', ['cache' => 'discovery']); }