[FrameworkBundle] Fix server run in case the router script does not exist
This commit is contained in:
parent
af4f95936d
commit
1a79859267
@ -15,6 +15,7 @@ use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Process\PhpExecutableFinder;
|
||||
use Symfony\Component\Process\ProcessBuilder;
|
||||
|
||||
/**
|
||||
@ -82,6 +83,12 @@ EOF
|
||||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
if (defined('HHVM_VERSION')) {
|
||||
$output->writeln('<error>This command is not supported on HHVM.</error>');
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
$documentRoot = $input->getOption('docroot');
|
||||
|
||||
if (!is_dir($documentRoot)) {
|
||||
@ -99,7 +106,10 @@ EOF
|
||||
$output->writeln(sprintf("Server running on <info>http://%s</info>\n", $input->getArgument('address')));
|
||||
$output->writeln('Quit the server with CONTROL-C.');
|
||||
|
||||
$builder = $this->createPhpProcessBuilder($input, $output, $env);
|
||||
if (null === $builder = $this->createPhpProcessBuilder($input, $output, $env)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
$builder->setWorkingDirectory($documentRoot);
|
||||
$builder->setTimeout(null);
|
||||
$process = $builder->getProcess();
|
||||
@ -137,11 +147,18 @@ EOF
|
||||
if (!file_exists($router)) {
|
||||
$output->writeln(sprintf('<error>The given router script "%s" does not exist</error>', $router));
|
||||
|
||||
return 1;
|
||||
return;
|
||||
}
|
||||
|
||||
$router = realpath($router);
|
||||
$finder = new PhpExecutableFinder();
|
||||
|
||||
return new ProcessBuilder(array(PHP_BINARY, '-S', $input->getArgument('address'), $router));
|
||||
if (false === $binary = $finder->find()) {
|
||||
$output->writeln('<error>Unable to find PHP binary to run server</error>');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return new ProcessBuilder(array($binary, '-S', $input->getArgument('address'), $router));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user