Updated how Symfony commands are used to fulfill API from v4.2

This commit is contained in:
Alejandro Celaya 2018-12-08 10:34:04 +01:00
parent 62fb3863c6
commit 080943e810
2 changed files with 12 additions and 10 deletions

View file

@ -26,7 +26,7 @@ $config['entity_manager']['connection'] = [
$sm->setService('config', $config); $sm->setService('config', $config);
// Create database // Create database
$process = new Process('vendor/bin/doctrine orm:schema-tool:create --no-interaction -q --test', __DIR__); $process = new Process(['vendor/bin/doctrine', 'orm:schema-tool:create', '--no-interaction', '-q', '--test'], __DIR__);
$process->inheritEnvironmentVariables() $process->inheritEnvironmentVariables()
->mustRun(); ->mustRun();

View file

@ -20,7 +20,8 @@ use Symfony\Component\Filesystem\Exception\IOException;
use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Process\PhpExecutableFinder; use Symfony\Component\Process\PhpExecutableFinder;
use Zend\Config\Writer\WriterInterface; use Zend\Config\Writer\WriterInterface;
use function sprintf; use function array_unshift;
use function implode;
class InstallCommand extends Command class InstallCommand extends Command
{ {
@ -133,7 +134,7 @@ class InstallCommand extends Command
if (! $this->isUpdate) { if (! $this->isUpdate) {
$this->io->write('Initializing database...'); $this->io->write('Initializing database...');
if (! $this->execPhp( if (! $this->execPhp(
'vendor/doctrine/orm/bin/doctrine.php orm:schema-tool:create', ['vendor/doctrine/orm/bin/doctrine.php', 'orm:schema-tool:create'],
'Error generating database.', 'Error generating database.',
$output $output
)) { )) {
@ -144,7 +145,7 @@ class InstallCommand extends Command
// Run database migrations // Run database migrations
$this->io->write('Updating database...'); $this->io->write('Updating database...');
if (! $this->execPhp( if (! $this->execPhp(
'vendor/doctrine/migrations/bin/doctrine-migrations.php migrations:migrate', ['vendor/doctrine/migrations/bin/doctrine-migrations.php', 'migrations:migrate'],
'Error updating database.', 'Error updating database.',
$output $output
)) { )) {
@ -154,16 +155,16 @@ class InstallCommand extends Command
// Generate proxies // Generate proxies
$this->io->write('Generating proxies...'); $this->io->write('Generating proxies...');
if (! $this->execPhp( if (! $this->execPhp(
'vendor/doctrine/orm/bin/doctrine.php orm:generate-proxies', ['vendor/doctrine/orm/bin/doctrine.php', 'orm:generate-proxies'],
'Error generating proxies.', 'Error generating proxies.',
$output $output
)) { )) {
return; return;
} }
// Download GeoLite2 db filte // Download GeoLite2 db file
$this->io->write('Downloading GeoLite2 db...'); $this->io->write('Downloading GeoLite2 db...');
if (! $this->execPhp('bin/cli visit:update-db', 'Error downloading GeoLite2 db.', $output)) { if (! $this->execPhp(['bin/cli', 'visit:update-db'], 'Error downloading GeoLite2 db.', $output)) {
return; return;
} }
@ -215,7 +216,7 @@ class InstallCommand extends Command
return $config; return $config;
} }
private function execPhp(string $command, string $errorMessage, OutputInterface $output): bool private function execPhp(array $command, string $errorMessage, OutputInterface $output): bool
{ {
if ($this->processHelper === null) { if ($this->processHelper === null) {
$this->processHelper = $this->getHelper('process'); $this->processHelper = $this->getHelper('process');
@ -225,12 +226,13 @@ class InstallCommand extends Command
$this->phpBinary = $this->phpFinder->find(false) ?: 'php'; $this->phpBinary = $this->phpFinder->find(false) ?: 'php';
} }
array_unshift($command, $this->phpBinary);
$this->io->write( $this->io->write(
' <options=bold>[Running "' . sprintf('%s %s', $this->phpBinary, $command) . '"]</> ', ' <options=bold>[Running "' . implode(' ', $command) . '"]</> ',
false, false,
OutputInterface::VERBOSITY_VERBOSE OutputInterface::VERBOSITY_VERBOSE
); );
$process = $this->processHelper->run($output, sprintf('%s %s', $this->phpBinary, $command)); $process = $this->processHelper->run($output, $command);
if ($process->isSuccessful()) { if ($process->isSuccessful()) {
$this->io->writeln(' <info>Success!</info>'); $this->io->writeln(' <info>Success!</info>');
return true; return true;