5 * Contains \Drupal\Console\Command\Database\ClientCommand.
8 namespace Drupal\Console\Command\Database;
10 use Symfony\Component\Console\Input\InputArgument;
11 use Symfony\Component\Console\Input\InputInterface;
12 use Symfony\Component\Console\Output\OutputInterface;
13 use Symfony\Component\Process\ProcessBuilder;
14 use Symfony\Component\Console\Command\Command;
15 use Drupal\Console\Core\Command\Shared\CommandTrait;
16 use Drupal\Console\Command\Shared\ConnectTrait;
17 use Drupal\Console\Core\Style\DrupalStyle;
19 class ClientCommand extends Command
27 protected function configure()
30 ->setName('database:client')
31 ->setDescription($this->trans('commands.database.client.description'))
34 InputArgument::OPTIONAL,
35 $this->trans('commands.database.client.arguments.database'),
38 ->setHelp($this->trans('commands.database.client.help'));
44 protected function execute(InputInterface $input, OutputInterface $output)
46 $io = new DrupalStyle($input, $output);
48 $database = $input->getArgument('database');
49 $learning = $input->getOption('learning');
51 $databaseConnection = $this->resolveConnection($io, $database);
53 $connection = sprintf(
54 '%s -A --database=%s --user=%s --password=%s --host=%s --port=%s',
55 $databaseConnection['driver'],
56 $databaseConnection['database'],
57 $databaseConnection['username'],
58 $databaseConnection['password'],
59 $databaseConnection['host'],
60 $databaseConnection['port']
66 $this->trans('commands.database.client.messages.connection'),
72 $processBuilder = new ProcessBuilder([]);
73 $processBuilder->setArguments(explode(' ', $connection));
74 $process = $processBuilder->getProcess();
75 $process->setTty('true');
78 if (!$process->isSuccessful()) {
79 throw new \RuntimeException($process->getErrorOutput());