site = $site; $this->validator = $validator; $this->moduleInstaller = $moduleInstaller; $this->chainQueue = $chainQueue; parent::__construct(); } /** * {@inheritdoc} */ protected function configure() { $this ->setName('module:dependency:install') ->setDescription($this->trans('commands.module.install.dependencies.description')) ->addArgument( 'module', InputArgument::IS_ARRAY, $this->trans('commands.module.install.dependencies.arguments.module') ); } /** * {@inheritdoc} */ protected function interact(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $module = $input->getArgument('module'); if (!$module) { // @see Drupal\Console\Command\Shared\ModuleTrait::moduleQuestion $module = $this->moduleQuestion($io); $input->setArgument('module', $module); } } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $module = $input->getArgument('module'); $unInstalledDependencies = $this->calculateDependencies((array)$module); if (!$unInstalledDependencies) { $io->warning($this->trans('commands.module.install.dependencies.messages.no-depencies')); return 0; } try { $io->comment( sprintf( $this->trans('commands.module.install.dependencies.messages.installing'), implode(', ', $unInstalledDependencies) ) ); drupal_static_reset('system_rebuild_module_data'); $this->moduleInstaller->install($unInstalledDependencies, true); $io->success( sprintf( $this->trans('commands.module.install.dependencies.messages.success'), implode(', ', $unInstalledDependencies) ) ); } catch (\Exception $e) { $io->error($e->getMessage()); return 1; } $this->chainQueue->addCommand('cache:rebuild', ['cache' => 'all']); } }