setName('database:client') ->setDescription($this->trans('commands.database.client.description')) ->addArgument( 'database', InputArgument::OPTIONAL, $this->trans('commands.database.client.arguments.database'), 'default' ) ->setHelp($this->trans('commands.database.client.help')); } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $database = $input->getArgument('database'); $learning = $input->getOption('learning'); $databaseConnection = $this->resolveConnection($io, $database); $connection = sprintf( '%s -A --database=%s --user=%s --password=%s --host=%s --port=%s', $databaseConnection['driver'], $databaseConnection['database'], $databaseConnection['username'], $databaseConnection['password'], $databaseConnection['host'], $databaseConnection['port'] ); if ($learning) { $io->commentBlock( sprintf( $this->trans('commands.database.client.messages.connection'), $connection ) ); } $processBuilder = new ProcessBuilder([]); $processBuilder->setArguments(explode(' ', $connection)); $process = $processBuilder->getProcess(); $process->setTty('true'); $process->run(); if (!$process->isSuccessful()) { throw new \RuntimeException($process->getErrorOutput()); } return 0; } }