Improved the code of the commands that use the new SymfonyStyle class
This commit is contained in:
parent
a4aafca33d
commit
c5067dacb3
@ -83,11 +83,11 @@ EOF
|
|||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
$twig = $this->getTwigEnvironment();
|
$twig = $this->getTwigEnvironment();
|
||||||
|
|
||||||
if (null === $twig) {
|
if (null === $twig) {
|
||||||
$output->error('The Twig environment needs to be set.');
|
$io->error('The Twig environment needs to be set.');
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -102,7 +102,7 @@ EOF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$data['tests'] = array_keys($data['tests']);
|
$data['tests'] = array_keys($data['tests']);
|
||||||
$output->writeln(json_encode($data));
|
$io->writeln(json_encode($data));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -121,10 +121,10 @@ EOF
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->section(ucfirst($type));
|
$io->section(ucfirst($type));
|
||||||
|
|
||||||
ksort($items);
|
ksort($items);
|
||||||
$output->listing($items);
|
$io->listing($items);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -85,17 +85,14 @@ EOF
|
|||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$stdout = $output;
|
$io = new SymfonyStyle($input, $output);
|
||||||
$output = new SymfonyStyle($input, $output);
|
|
||||||
|
|
||||||
if (false !== strpos($input->getFirstArgument(), ':l')) {
|
if (false !== strpos($input->getFirstArgument(), ':l')) {
|
||||||
$output->caution('The use of "twig:lint" command is deprecated since version 2.7 and will be removed in 3.0. Use the "lint:twig" instead.');
|
$io->caution('The use of "twig:lint" command is deprecated since version 2.7 and will be removed in 3.0. Use the "lint:twig" instead.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$twig = $this->getTwigEnvironment();
|
if (null === $twig = $this->getTwigEnvironment()) {
|
||||||
|
$io->error('The Twig environment needs to be set.');
|
||||||
if (null === $twig) {
|
|
||||||
$output->error('The Twig environment needs to be set.');
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -112,12 +109,12 @@ EOF
|
|||||||
$template .= fread(STDIN, 1024);
|
$template .= fread(STDIN, 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->display($input, $stdout, $output, array($this->validate($twig, $template, uniqid('sf_'))));
|
return $this->display($input, $output, $io, array($this->validate($twig, $template, uniqid('sf_'))));
|
||||||
}
|
}
|
||||||
|
|
||||||
$filesInfo = $this->getFilesInfo($twig, $filenames);
|
$filesInfo = $this->getFilesInfo($twig, $filenames);
|
||||||
|
|
||||||
return $this->display($input, $stdout, $output, $filesInfo);
|
return $this->display($input, $output, $io, $filesInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getFilesInfo(\Twig_Environment $twig, array $filenames)
|
private function getFilesInfo(\Twig_Environment $twig, array $filenames)
|
||||||
@ -161,35 +158,35 @@ EOF
|
|||||||
return array('template' => $template, 'file' => $file, 'valid' => true);
|
return array('template' => $template, 'file' => $file, 'valid' => true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function display(InputInterface $input, OutputInterface $stdout, $output, $files)
|
private function display(InputInterface $input, OutputInterface $output, SymfonyStyle $io, $files)
|
||||||
{
|
{
|
||||||
switch ($input->getOption('format')) {
|
switch ($input->getOption('format')) {
|
||||||
case 'txt':
|
case 'txt':
|
||||||
return $this->displayTxt($stdout, $output, $files);
|
return $this->displayTxt($output, $io, $files);
|
||||||
case 'json':
|
case 'json':
|
||||||
return $this->displayJson($stdout, $files);
|
return $this->displayJson($output, $files);
|
||||||
default:
|
default:
|
||||||
throw new \InvalidArgumentException(sprintf('The format "%s" is not supported.', $input->getOption('format')));
|
throw new \InvalidArgumentException(sprintf('The format "%s" is not supported.', $input->getOption('format')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function displayTxt(OutputInterface $stdout, $output, $filesInfo)
|
private function displayTxt(OutputInterface $output, SymfonyStyle $io, $filesInfo)
|
||||||
{
|
{
|
||||||
$errors = 0;
|
$errors = 0;
|
||||||
|
|
||||||
foreach ($filesInfo as $info) {
|
foreach ($filesInfo as $info) {
|
||||||
if ($info['valid'] && $stdout->isVerbose()) {
|
if ($info['valid'] && $output->isVerbose()) {
|
||||||
$output->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
|
$io->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
|
||||||
} elseif (!$info['valid']) {
|
} elseif (!$info['valid']) {
|
||||||
++$errors;
|
++$errors;
|
||||||
$this->renderException($output, $info['template'], $info['exception'], $info['file']);
|
$this->renderException($io, $info['template'], $info['exception'], $info['file']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($errors === 0) {
|
if ($errors === 0) {
|
||||||
$output->success(sprintf('All %d Twig files contain valid syntax.', count($filesInfo)));
|
$io->success(sprintf('All %d Twig files contain valid syntax.', count($filesInfo)));
|
||||||
} else {
|
} else {
|
||||||
$output->warning(sprintf('%d Twig files have valid syntax and %d contain errors.', count($filesInfo) - $errors, $errors));
|
$io->warning(sprintf('%d Twig files have valid syntax and %d contain errors.', count($filesInfo) - $errors, $errors));
|
||||||
}
|
}
|
||||||
|
|
||||||
return min($errors, 1);
|
return min($errors, 1);
|
||||||
|
@ -55,7 +55,7 @@ EOF
|
|||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$outputIsVerbose = $output->isVerbose();
|
$outputIsVerbose = $output->isVerbose();
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$realCacheDir = $this->getContainer()->getParameter('kernel.cache_dir');
|
$realCacheDir = $this->getContainer()->getParameter('kernel.cache_dir');
|
||||||
$oldCacheDir = $realCacheDir.'_old';
|
$oldCacheDir = $realCacheDir.'_old';
|
||||||
@ -70,7 +70,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
$kernel = $this->getContainer()->get('kernel');
|
$kernel = $this->getContainer()->get('kernel');
|
||||||
$output->comment(sprintf('Clearing the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
$io->comment(sprintf('Clearing the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||||
$this->getContainer()->get('cache_clearer')->clear($realCacheDir);
|
$this->getContainer()->get('cache_clearer')->clear($realCacheDir);
|
||||||
|
|
||||||
if ($input->getOption('no-warmup')) {
|
if ($input->getOption('no-warmup')) {
|
||||||
@ -83,13 +83,13 @@ EOF
|
|||||||
|
|
||||||
if ($filesystem->exists($warmupDir)) {
|
if ($filesystem->exists($warmupDir)) {
|
||||||
if ($outputIsVerbose) {
|
if ($outputIsVerbose) {
|
||||||
$output->comment('Clearing outdated warmup directory...');
|
$io->comment('Clearing outdated warmup directory...');
|
||||||
}
|
}
|
||||||
$filesystem->remove($warmupDir);
|
$filesystem->remove($warmupDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($outputIsVerbose) {
|
if ($outputIsVerbose) {
|
||||||
$output->comment('Warming up cache...');
|
$io->comment('Warming up cache...');
|
||||||
}
|
}
|
||||||
$this->warmup($warmupDir, $realCacheDir, !$input->getOption('no-optional-warmers'));
|
$this->warmup($warmupDir, $realCacheDir, !$input->getOption('no-optional-warmers'));
|
||||||
|
|
||||||
@ -101,16 +101,16 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($outputIsVerbose) {
|
if ($outputIsVerbose) {
|
||||||
$output->comment('Removing old cache directory...');
|
$io->comment('Removing old cache directory...');
|
||||||
}
|
}
|
||||||
|
|
||||||
$filesystem->remove($oldCacheDir);
|
$filesystem->remove($oldCacheDir);
|
||||||
|
|
||||||
if ($outputIsVerbose) {
|
if ($outputIsVerbose) {
|
||||||
$output->comment('Finished');
|
$io->comment('Finished');
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->success(sprintf('Cache for the "%s" environment (debug=%s) was successfully cleared.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
$io->success(sprintf('Cache for the "%s" environment (debug=%s) was successfully cleared.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -54,10 +54,10 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$kernel = $this->getContainer()->get('kernel');
|
$kernel = $this->getContainer()->get('kernel');
|
||||||
$output->comment(sprintf('Warming up the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
$io->comment(sprintf('Warming up the cache for the <info>%s</info> environment with debug <info>%s</info>', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||||
|
|
||||||
$warmer = $this->getContainer()->get('cache_warmer');
|
$warmer = $this->getContainer()->get('cache_warmer');
|
||||||
|
|
||||||
@ -67,6 +67,6 @@ EOF
|
|||||||
|
|
||||||
$warmer->warmUp($this->getContainer()->getParameter('kernel.cache_dir'));
|
$warmer->warmUp($this->getContainer()->getParameter('kernel.cache_dir'));
|
||||||
|
|
||||||
$output->success(sprintf('Cache for the "%s" environment (debug=%s) was successfully warmed.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
$io->success(sprintf('Cache for the "%s" environment (debug=%s) was successfully warmed.', $kernel->getEnvironment(), var_export($kernel->isDebug(), true)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,16 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
||||||
$output->caution('The use of "config:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:config" instead.');
|
$io->caution('The use of "config:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:config" instead.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$name = $input->getArgument('name');
|
$name = $input->getArgument('name');
|
||||||
|
|
||||||
if (empty($name)) {
|
if (empty($name)) {
|
||||||
$output->comment('Provide the name of a bundle as the first argument of this command to dump its configuration.');
|
$io->comment('Provide the name of a bundle as the first argument of this command to dump its configuration.');
|
||||||
$output->newLine();
|
$io->newLine();
|
||||||
$this->listBundles($output);
|
$this->listBundles($output);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -87,12 +87,12 @@ EOF
|
|||||||
$config = $processor->processConfiguration($configuration, $configs);
|
$config = $processor->processConfiguration($configuration, $configs);
|
||||||
|
|
||||||
if ($name === $extension->getAlias()) {
|
if ($name === $extension->getAlias()) {
|
||||||
$output->title(sprintf('Current configuration for extension with alias "%s"', $name));
|
$io->title(sprintf('Current configuration for extension with alias "%s"', $name));
|
||||||
} else {
|
} else {
|
||||||
$output->title(sprintf('Current configuration for "%s"', $name));
|
$io->title(sprintf('Current configuration for "%s"', $name));
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->writeln(Yaml::dump(array($extension->getAlias() => $config), 3));
|
$io->writeln(Yaml::dump(array($extension->getAlias() => $config), 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function compileContainer()
|
private function compileContainer()
|
||||||
|
@ -67,12 +67,12 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
$name = $input->getArgument('name');
|
$name = $input->getArgument('name');
|
||||||
|
|
||||||
if (empty($name)) {
|
if (empty($name)) {
|
||||||
$output->comment('Provide the name of a bundle as the first argument of this command to dump its default configuration.');
|
$io->comment('Provide the name of a bundle as the first argument of this command to dump its default configuration.');
|
||||||
$output->newLine();
|
$io->newLine();
|
||||||
$this->listBundles($output);
|
$this->listBundles($output);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -92,18 +92,18 @@ EOF
|
|||||||
|
|
||||||
switch ($input->getOption('format')) {
|
switch ($input->getOption('format')) {
|
||||||
case 'yaml':
|
case 'yaml':
|
||||||
$output->writeln(sprintf('# %s', $message));
|
$io->writeln(sprintf('# %s', $message));
|
||||||
$dumper = new YamlReferenceDumper();
|
$dumper = new YamlReferenceDumper();
|
||||||
break;
|
break;
|
||||||
case 'xml':
|
case 'xml':
|
||||||
$output->writeln(sprintf('<!-- %s -->', $message));
|
$io->writeln(sprintf('<!-- %s -->', $message));
|
||||||
$dumper = new XmlReferenceDumper();
|
$dumper = new XmlReferenceDumper();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$output->writeln($message);
|
$io->writeln($message);
|
||||||
throw new \InvalidArgumentException('Only the yaml and xml formats are supported.');
|
throw new \InvalidArgumentException('Only the yaml and xml formats are supported.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->writeln($dumper->dump($configuration, $extension->getNamespace()));
|
$io->writeln($dumper->dump($configuration, $extension->getNamespace()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,9 +94,9 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
||||||
$output->caution('The use of "container:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:container" instead.');
|
$io->caution('The use of "container:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:container" instead.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->validateInput($input);
|
$this->validateInput($input);
|
||||||
@ -129,7 +129,7 @@ EOF
|
|||||||
$helper->describe($output, $object, $options);
|
$helper->describe($output, $object, $options);
|
||||||
|
|
||||||
if (!$input->getArgument('name') && $input->isInteractive()) {
|
if (!$input->getArgument('name') && $input->isInteractive()) {
|
||||||
$output->comment('To search for a specific service, re-run this command with a search term. (e.g. <comment>debug:container log</comment>)');
|
$io->comment('To search for a specific service, re-run this command with a search term. (e.g. <comment>debug:container log</comment>)');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,7 +188,7 @@ EOF
|
|||||||
return $this->containerBuilder = $container;
|
return $this->containerBuilder = $container;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function findProperServiceName(InputInterface $input, SymfonyStyle $output, ContainerBuilder $builder, $name)
|
private function findProperServiceName(InputInterface $input, SymfonyStyle $io, ContainerBuilder $builder, $name)
|
||||||
{
|
{
|
||||||
if ($builder->has($name) || !$input->isInteractive()) {
|
if ($builder->has($name) || !$input->isInteractive()) {
|
||||||
return $name;
|
return $name;
|
||||||
@ -199,7 +199,7 @@ EOF
|
|||||||
throw new \InvalidArgumentException(sprintf('No services found that match "%s".', $name));
|
throw new \InvalidArgumentException(sprintf('No services found that match "%s".', $name));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $output->choice('Select one of the following services to display its information', $matchingServices);
|
return $io->choice('Select one of the following services to display its information', $matchingServices);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function findServiceIdsContaining(ContainerBuilder $builder, $name)
|
private function findServiceIdsContaining(ContainerBuilder $builder, $name)
|
||||||
|
@ -59,13 +59,13 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
$dispatcher = $this->getEventDispatcher();
|
$dispatcher = $this->getEventDispatcher();
|
||||||
|
|
||||||
$options = array();
|
$options = array();
|
||||||
if ($event = $input->getArgument('event')) {
|
if ($event = $input->getArgument('event')) {
|
||||||
if (!$dispatcher->hasListeners($event)) {
|
if (!$dispatcher->hasListeners($event)) {
|
||||||
$output->warning(sprintf('The event "%s" does not have any registered listeners.', $event));
|
$io->warning(sprintf('The event "%s" does not have any registered listeners.', $event));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -76,8 +76,8 @@ EOF
|
|||||||
$helper = new DescriptorHelper();
|
$helper = new DescriptorHelper();
|
||||||
$options['format'] = $input->getOption('format');
|
$options['format'] = $input->getOption('format');
|
||||||
$options['raw_text'] = $input->getOption('raw');
|
$options['raw_text'] = $input->getOption('raw');
|
||||||
$options['output'] = $output;
|
$options['output'] = $io;
|
||||||
$helper->describe($output, $dispatcher, $options);
|
$helper->describe($io, $dispatcher, $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,11 +75,10 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$output->title('Router Apache Dumper');
|
$io->title('Router Apache Dumper');
|
||||||
|
$io->caution('The router:dump-apache command is deprecated since version 2.5 and will be removed in 3.0.');
|
||||||
$output->caution('The router:dump-apache command is deprecated since version 2.5 and will be removed in 3.0.');
|
|
||||||
|
|
||||||
$router = $this->getContainer()->get('router');
|
$router = $this->getContainer()->get('router');
|
||||||
|
|
||||||
@ -93,6 +92,6 @@ EOF
|
|||||||
|
|
||||||
$dumper = new ApacheMatcherDumper($router->getRouteCollection());
|
$dumper = new ApacheMatcherDumper($router->getRouteCollection());
|
||||||
|
|
||||||
$output->writeln($dumper->dump($dumpOptions), OutputInterface::OUTPUT_RAW);
|
$io->writeln($dumper->dump($dumpOptions), OutputInterface::OUTPUT_RAW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,10 +78,10 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
||||||
$output->caution('The use of "router:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:router" instead.');
|
$io->caution('The use of "router:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:router" instead.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$name = $input->getArgument('name');
|
$name = $input->getArgument('name');
|
||||||
@ -95,11 +95,11 @@ EOF
|
|||||||
|
|
||||||
$this->convertController($route);
|
$this->convertController($route);
|
||||||
|
|
||||||
$helper->describe($output, $route, array(
|
$helper->describe($io, $route, array(
|
||||||
'format' => $input->getOption('format'),
|
'format' => $input->getOption('format'),
|
||||||
'raw_text' => $input->getOption('raw'),
|
'raw_text' => $input->getOption('raw'),
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'output' => $output,
|
'output' => $io,
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
$routes = $this->getContainer()->get('router')->getRouteCollection();
|
$routes = $this->getContainer()->get('router')->getRouteCollection();
|
||||||
@ -108,11 +108,11 @@ EOF
|
|||||||
$this->convertController($route);
|
$this->convertController($route);
|
||||||
}
|
}
|
||||||
|
|
||||||
$helper->describe($output, $routes, array(
|
$helper->describe($io, $routes, array(
|
||||||
'format' => $input->getOption('format'),
|
'format' => $input->getOption('format'),
|
||||||
'raw_text' => $input->getOption('raw'),
|
'raw_text' => $input->getOption('raw'),
|
||||||
'show_controllers' => $input->getOption('show-controllers'),
|
'show_controllers' => $input->getOption('show-controllers'),
|
||||||
'output' => $output,
|
'output' => $io,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$router = $this->getContainer()->get('router');
|
$router = $this->getContainer()->get('router');
|
||||||
$context = $router->getContext();
|
$context = $router->getContext();
|
||||||
@ -94,26 +94,26 @@ EOF
|
|||||||
|
|
||||||
$traces = $matcher->getTraces($input->getArgument('path_info'));
|
$traces = $matcher->getTraces($input->getArgument('path_info'));
|
||||||
|
|
||||||
$output->newLine();
|
$io->newLine();
|
||||||
|
|
||||||
$matches = false;
|
$matches = false;
|
||||||
foreach ($traces as $trace) {
|
foreach ($traces as $trace) {
|
||||||
if (TraceableUrlMatcher::ROUTE_ALMOST_MATCHES == $trace['level']) {
|
if (TraceableUrlMatcher::ROUTE_ALMOST_MATCHES == $trace['level']) {
|
||||||
$output->text(sprintf('Route <info>"%s"</> almost matches but %s', $trace['name'], lcfirst($trace['log'])));
|
$io->text(sprintf('Route <info>"%s"</> almost matches but %s', $trace['name'], lcfirst($trace['log'])));
|
||||||
} elseif (TraceableUrlMatcher::ROUTE_MATCHES == $trace['level']) {
|
} elseif (TraceableUrlMatcher::ROUTE_MATCHES == $trace['level']) {
|
||||||
$output->success(sprintf('Route "%s" matches', $trace['name']));
|
$io->success(sprintf('Route "%s" matches', $trace['name']));
|
||||||
|
|
||||||
$routerDebugCommand = $this->getApplication()->find('debug:router');
|
$routerDebugCommand = $this->getApplication()->find('debug:router');
|
||||||
$routerDebugCommand->run(new ArrayInput(array('name' => $trace['name'])), $output);
|
$routerDebugCommand->run(new ArrayInput(array('name' => $trace['name'])), $output);
|
||||||
|
|
||||||
$matches = true;
|
$matches = true;
|
||||||
} elseif ($input->getOption('verbose')) {
|
} elseif ($input->getOption('verbose')) {
|
||||||
$output->text(sprintf('Route "%s" does not match: %s', $trace['name'], $trace['log']));
|
$io->text(sprintf('Route "%s" does not match: %s', $trace['name'], $trace['log']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$matches) {
|
if (!$matches) {
|
||||||
$output->error(sprintf('None of the routes match the path "%s"', $input->getArgument('path_info')));
|
$io->error(sprintf('None of the routes match the path "%s"', $input->getArgument('path_info')));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -85,8 +85,7 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$stdout = $output;
|
$io = new SymfonyStyle($input, $output);
|
||||||
$output = new SymfonyStyle($input, $output);
|
|
||||||
$documentRoot = $input->getOption('docroot');
|
$documentRoot = $input->getOption('docroot');
|
||||||
|
|
||||||
if (null === $documentRoot) {
|
if (null === $documentRoot) {
|
||||||
@ -94,7 +93,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!is_dir($documentRoot)) {
|
if (!is_dir($documentRoot)) {
|
||||||
$output->error(sprintf('The given document root directory "%s" does not exist', $documentRoot));
|
$io->error(sprintf('The given document root directory "%s" does not exist', $documentRoot));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -107,17 +106,17 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($this->isOtherServerProcessRunning($address)) {
|
if ($this->isOtherServerProcessRunning($address)) {
|
||||||
$output->error(sprintf('A process is already listening on http://%s.', $address));
|
$io->error(sprintf('A process is already listening on http://%s.', $address));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('prod' === $env) {
|
if ('prod' === $env) {
|
||||||
$output->error('Running PHP built-in server in production environment is NOT recommended!');
|
$io->error('Running PHP built-in server in production environment is NOT recommended!');
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->success(sprintf('Server running on http://%s', $address));
|
$io->success(sprintf('Server running on http://%s', $address));
|
||||||
$output->comment('Quit the server with CONTROL-C.');
|
$io->comment('Quit the server with CONTROL-C.');
|
||||||
|
|
||||||
if (null === $builder = $this->createPhpProcessBuilder($output, $address, $input->getOption('router'), $env)) {
|
if (null === $builder = $this->createPhpProcessBuilder($output, $address, $input->getOption('router'), $env)) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -127,13 +126,13 @@ EOF
|
|||||||
$builder->setTimeout(null);
|
$builder->setTimeout(null);
|
||||||
$process = $builder->getProcess();
|
$process = $builder->getProcess();
|
||||||
|
|
||||||
if (OutputInterface::VERBOSITY_VERBOSE > $stdout->getVerbosity()) {
|
if (OutputInterface::VERBOSITY_VERBOSE > $output->getVerbosity()) {
|
||||||
$process->disableOutput();
|
$process->disableOutput();
|
||||||
}
|
}
|
||||||
|
|
||||||
$this
|
$this
|
||||||
->getHelper('process')
|
->getHelper('process')
|
||||||
->run($stdout, $process, null, null, OutputInterface::VERBOSITY_VERBOSE);
|
->run($output, $process, null, null, OutputInterface::VERBOSITY_VERBOSE);
|
||||||
|
|
||||||
if (!$process->isSuccessful()) {
|
if (!$process->isSuccessful()) {
|
||||||
$errorMessages = array('Built-in server terminated unexpectedly.');
|
$errorMessages = array('Built-in server terminated unexpectedly.');
|
||||||
@ -142,13 +141,13 @@ EOF
|
|||||||
$errorMessages[] = 'Run the command again with -v option for more details.';
|
$errorMessages[] = 'Run the command again with -v option for more details.';
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->error($errorMessages);
|
$io->error($errorMessages);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $process->getExitCode();
|
return $process->getExitCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createPhpProcessBuilder(SymfonyStyle $output, $address, $router, $env)
|
private function createPhpProcessBuilder(SymfonyStyle $io, $address, $router, $env)
|
||||||
{
|
{
|
||||||
$router = $router ?: $this
|
$router = $router ?: $this
|
||||||
->getContainer()
|
->getContainer()
|
||||||
@ -157,7 +156,7 @@ EOF
|
|||||||
;
|
;
|
||||||
|
|
||||||
if (!file_exists($router)) {
|
if (!file_exists($router)) {
|
||||||
$output->error(sprintf('The given router script "%s" does not exist.', $router));
|
$io->error(sprintf('The given router script "%s" does not exist.', $router));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -166,7 +165,7 @@ EOF
|
|||||||
$finder = new PhpExecutableFinder();
|
$finder = new PhpExecutableFinder();
|
||||||
|
|
||||||
if (false === $binary = $finder->find()) {
|
if (false === $binary = $finder->find()) {
|
||||||
$output->error('Unable to find PHP binary to run server.');
|
$io->error('Unable to find PHP binary to run server.');
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -74,15 +74,15 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $cliOutput = $output);
|
$io = new SymfonyStyle($input, $cliOutput = $output);
|
||||||
|
|
||||||
if (!extension_loaded('pcntl')) {
|
if (!extension_loaded('pcntl')) {
|
||||||
$output->error(array(
|
$io->error(array(
|
||||||
'This command needs the pcntl extension to run.',
|
'This command needs the pcntl extension to run.',
|
||||||
'You can either install it or use the "server:run" command instead to run the built-in web server.',
|
'You can either install it or use the "server:run" command instead to run the built-in web server.',
|
||||||
));
|
));
|
||||||
|
|
||||||
if ($output->ask('Do you want to execute <info>server:run</info> immediately? [Yn] ', true)) {
|
if ($io->ask('Do you want to execute <info>server:run</info> immediately? [Yn] ', true)) {
|
||||||
$command = $this->getApplication()->find('server:run');
|
$command = $this->getApplication()->find('server:run');
|
||||||
|
|
||||||
return $command->run($input, $cliOutput);
|
return $command->run($input, $cliOutput);
|
||||||
@ -98,7 +98,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!is_dir($documentRoot)) {
|
if (!is_dir($documentRoot)) {
|
||||||
$output->error(sprintf('The given document root directory "%s" does not exist.', $documentRoot));
|
$io->error(sprintf('The given document root directory "%s" does not exist.', $documentRoot));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -116,7 +116,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$input->getOption('force') && $this->isOtherServerProcessRunning($address)) {
|
if (!$input->getOption('force') && $this->isOtherServerProcessRunning($address)) {
|
||||||
$output->error(array(
|
$io->error(array(
|
||||||
sprintf('A process is already listening on http://%s.', $address),
|
sprintf('A process is already listening on http://%s.', $address),
|
||||||
'Use the --force option if the server process terminated unexpectedly to start a new web server process.',
|
'Use the --force option if the server process terminated unexpectedly to start a new web server process.',
|
||||||
));
|
));
|
||||||
@ -125,25 +125,25 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ('prod' === $env) {
|
if ('prod' === $env) {
|
||||||
$output->error('Running PHP built-in server in production environment is NOT recommended!');
|
$io->error('Running PHP built-in server in production environment is NOT recommended!');
|
||||||
}
|
}
|
||||||
|
|
||||||
$pid = pcntl_fork();
|
$pid = pcntl_fork();
|
||||||
|
|
||||||
if ($pid < 0) {
|
if ($pid < 0) {
|
||||||
$output->error('Unable to start the server process.');
|
$io->error('Unable to start the server process.');
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($pid > 0) {
|
if ($pid > 0) {
|
||||||
$output->success(sprintf('Web server listening on http://%s', $address));
|
$io->success(sprintf('Web server listening on http://%s', $address));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (posix_setsid() < 0) {
|
if (posix_setsid() < 0) {
|
||||||
$output->error('Unable to set the child process as session leader');
|
$io->error('Unable to set the child process as session leader');
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -158,7 +158,7 @@ EOF
|
|||||||
touch($lockFile);
|
touch($lockFile);
|
||||||
|
|
||||||
if (!$process->isRunning()) {
|
if (!$process->isRunning()) {
|
||||||
$output->error('Unable to start the server process');
|
$io->error('Unable to start the server process');
|
||||||
unlink($lockFile);
|
unlink($lockFile);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -180,11 +180,11 @@ EOF
|
|||||||
*
|
*
|
||||||
* @param string|null $router File path of the custom router script, if set by the user; otherwise null
|
* @param string|null $router File path of the custom router script, if set by the user; otherwise null
|
||||||
* @param string $env The application environment
|
* @param string $env The application environment
|
||||||
* @param SymfonyStyle $output An SymfonyStyle instance
|
* @param SymfonyStyle $io An SymfonyStyle instance
|
||||||
*
|
*
|
||||||
* @return string|bool The absolute file path of the router script, or false on failure
|
* @return string|bool The absolute file path of the router script, or false on failure
|
||||||
*/
|
*/
|
||||||
private function determineRouterScript($router, $env, SymfonyStyle $output)
|
private function determineRouterScript($router, $env, SymfonyStyle $io)
|
||||||
{
|
{
|
||||||
if (null === $router) {
|
if (null === $router) {
|
||||||
$router = $this
|
$router = $this
|
||||||
@ -195,7 +195,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (false === $path = realpath($router)) {
|
if (false === $path = realpath($router)) {
|
||||||
$output->error(sprintf('The given router script "%s" does not exist.', $router));
|
$io->error(sprintf('The given router script "%s" does not exist.', $router));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -206,18 +206,18 @@ EOF
|
|||||||
/**
|
/**
|
||||||
* Creates a process to start PHP's built-in web server.
|
* Creates a process to start PHP's built-in web server.
|
||||||
*
|
*
|
||||||
* @param SymfonyStyle $output A SymfonyStyle instance
|
* @param SymfonyStyle $io A SymfonyStyle instance
|
||||||
* @param string $address IP address and port to listen to
|
* @param string $address IP address and port to listen to
|
||||||
* @param string $documentRoot The application's document root
|
* @param string $documentRoot The application's document root
|
||||||
* @param string $router The router filename
|
* @param string $router The router filename
|
||||||
*
|
*
|
||||||
* @return Process The process
|
* @return Process The process
|
||||||
*/
|
*/
|
||||||
private function createServerProcess(SymfonyStyle $output, $address, $documentRoot, $router)
|
private function createServerProcess(SymfonyStyle $io, $address, $documentRoot, $router)
|
||||||
{
|
{
|
||||||
$finder = new PhpExecutableFinder();
|
$finder = new PhpExecutableFinder();
|
||||||
if (false === $binary = $finder->find()) {
|
if (false === $binary = $finder->find()) {
|
||||||
$output->error('Unable to find PHP binary to start server.');
|
$io->error('Unable to find PHP binary to start server.');
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ class ServerStatusCommand extends ServerCommand
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
$address = $input->getArgument('address');
|
$address = $input->getArgument('address');
|
||||||
|
|
||||||
// remove an orphaned lock file
|
// remove an orphaned lock file
|
||||||
@ -52,9 +52,9 @@ class ServerStatusCommand extends ServerCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (file_exists($this->getLockFile($address))) {
|
if (file_exists($this->getLockFile($address))) {
|
||||||
$output->success(sprintf('Web server still listening on http://%s', $address));
|
$io->success(sprintf('Web server still listening on http://%s', $address));
|
||||||
} else {
|
} else {
|
||||||
$output->warning(sprintf('No web server is listening on http://%s', $address));
|
$io->warning(sprintf('No web server is listening on http://%s', $address));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$address = $input->getArgument('address');
|
$address = $input->getArgument('address');
|
||||||
if (false === strpos($address, ':')) {
|
if (false === strpos($address, ':')) {
|
||||||
@ -65,12 +65,12 @@ EOF
|
|||||||
$lockFile = $this->getLockFile($address);
|
$lockFile = $this->getLockFile($address);
|
||||||
|
|
||||||
if (!file_exists($lockFile)) {
|
if (!file_exists($lockFile)) {
|
||||||
$output->error(sprintf('No web server is listening on http://%s', $address));
|
$io->error(sprintf('No web server is listening on http://%s', $address));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
unlink($lockFile);
|
unlink($lockFile);
|
||||||
$output->success(sprintf('Stopped the web server listening on http://%s', $address));
|
$io->success(sprintf('Stopped the web server listening on http://%s', $address));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,9 +92,9 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
||||||
$output->caution('The use of "translation:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:translation" instead.');
|
$io->caution('The use of "translation:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:translation" instead.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$locale = $input->getArgument('locale');
|
$locale = $input->getArgument('locale');
|
||||||
@ -151,7 +151,7 @@ EOF
|
|||||||
$outputMessage .= sprintf(' and domain "%s"', $domain);
|
$outputMessage .= sprintf(' and domain "%s"', $domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->warning($outputMessage);
|
$io->warning($outputMessage);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -201,7 +201,7 @@ EOF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->table($headers, $rows);
|
$io->table($headers, $rows);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function formatState($state)
|
private function formatState($state)
|
||||||
|
@ -69,11 +69,11 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
// check presence of force or dump-message
|
// check presence of force or dump-message
|
||||||
if ($input->getOption('force') !== true && $input->getOption('dump-messages') !== true) {
|
if ($input->getOption('force') !== true && $input->getOption('dump-messages') !== true) {
|
||||||
$output->error('You must choose one of --force or --dump-messages');
|
$io->error('You must choose one of --force or --dump-messages');
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -82,7 +82,7 @@ EOF
|
|||||||
$writer = $this->getContainer()->get('translation.writer');
|
$writer = $this->getContainer()->get('translation.writer');
|
||||||
$supportedFormats = $writer->getFormats();
|
$supportedFormats = $writer->getFormats();
|
||||||
if (!in_array($input->getOption('output-format'), $supportedFormats)) {
|
if (!in_array($input->getOption('output-format'), $supportedFormats)) {
|
||||||
$output->error(array('Wrong output format', 'Supported formats are: '.implode(', ', $supportedFormats).'.'));
|
$io->error(array('Wrong output format', 'Supported formats are: '.implode(', ', $supportedFormats).'.'));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -112,12 +112,12 @@ EOF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->title('Translation Messages Extractor and Dumper');
|
$io->title('Translation Messages Extractor and Dumper');
|
||||||
$output->comment(sprintf('Generating "<info>%s</info>" translation files for "<info>%s</info>"', $input->getArgument('locale'), $currentName));
|
$io->comment(sprintf('Generating "<info>%s</info>" translation files for "<info>%s</info>"', $input->getArgument('locale'), $currentName));
|
||||||
|
|
||||||
// load any messages from templates
|
// load any messages from templates
|
||||||
$extractedCatalogue = new MessageCatalogue($input->getArgument('locale'));
|
$extractedCatalogue = new MessageCatalogue($input->getArgument('locale'));
|
||||||
$output->comment('Parsing templates...');
|
$io->comment('Parsing templates...');
|
||||||
$extractor = $this->getContainer()->get('translation.extractor');
|
$extractor = $this->getContainer()->get('translation.extractor');
|
||||||
$extractor->setPrefix($input->getOption('prefix'));
|
$extractor->setPrefix($input->getOption('prefix'));
|
||||||
foreach ($transPaths as $path) {
|
foreach ($transPaths as $path) {
|
||||||
@ -129,7 +129,7 @@ EOF
|
|||||||
|
|
||||||
// load any existing messages from the translation files
|
// load any existing messages from the translation files
|
||||||
$currentCatalogue = new MessageCatalogue($input->getArgument('locale'));
|
$currentCatalogue = new MessageCatalogue($input->getArgument('locale'));
|
||||||
$output->comment('Loading translation files...');
|
$io->comment('Loading translation files...');
|
||||||
$loader = $this->getContainer()->get('translation.loader');
|
$loader = $this->getContainer()->get('translation.loader');
|
||||||
foreach ($transPaths as $path) {
|
foreach ($transPaths as $path) {
|
||||||
$path .= 'translations';
|
$path .= 'translations';
|
||||||
@ -145,7 +145,7 @@ EOF
|
|||||||
|
|
||||||
// Exit if no messages found.
|
// Exit if no messages found.
|
||||||
if (!count($operation->getDomains())) {
|
if (!count($operation->getDomains())) {
|
||||||
$output->warning('No translation messages were found.');
|
$io->warning('No translation messages were found.');
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -153,15 +153,15 @@ EOF
|
|||||||
// show compiled list of messages
|
// show compiled list of messages
|
||||||
if (true === $input->getOption('dump-messages')) {
|
if (true === $input->getOption('dump-messages')) {
|
||||||
$extractedMessagesCount = 0;
|
$extractedMessagesCount = 0;
|
||||||
$output->newLine();
|
$io->newLine();
|
||||||
foreach ($operation->getDomains() as $domain) {
|
foreach ($operation->getDomains() as $domain) {
|
||||||
$newKeys = array_keys($operation->getNewMessages($domain));
|
$newKeys = array_keys($operation->getNewMessages($domain));
|
||||||
$allKeys = array_keys($operation->getMessages($domain));
|
$allKeys = array_keys($operation->getMessages($domain));
|
||||||
$domainMessagesCount = count($newKeys) + count($allKeys);
|
$domainMessagesCount = count($newKeys) + count($allKeys);
|
||||||
|
|
||||||
$output->section(sprintf('Messages extracted for domain "<info>%s</info>" (%d messages)', $domain, $domainMessagesCount));
|
$io->section(sprintf('Messages extracted for domain "<info>%s</info>" (%d messages)', $domain, $domainMessagesCount));
|
||||||
|
|
||||||
$output->listing(array_merge(
|
$io->listing(array_merge(
|
||||||
array_diff($allKeys, $newKeys),
|
array_diff($allKeys, $newKeys),
|
||||||
array_map(function ($id) {
|
array_map(function ($id) {
|
||||||
return sprintf('<fg=green>%s</>', $id);
|
return sprintf('<fg=green>%s</>', $id);
|
||||||
@ -175,7 +175,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($input->getOption('output-format') == 'xlf') {
|
if ($input->getOption('output-format') == 'xlf') {
|
||||||
$output->comment('Xliff output version is <info>1.2</info>');
|
$io->comment('Xliff output version is <info>1.2</info>');
|
||||||
}
|
}
|
||||||
|
|
||||||
$resultMessage = sprintf('%d messages were successfully extracted', $extractedMessagesCount);
|
$resultMessage = sprintf('%d messages were successfully extracted', $extractedMessagesCount);
|
||||||
@ -187,7 +187,7 @@ EOF
|
|||||||
|
|
||||||
// save the files
|
// save the files
|
||||||
if ($input->getOption('force') === true) {
|
if ($input->getOption('force') === true) {
|
||||||
$output->comment('Writing files...');
|
$io->comment('Writing files...');
|
||||||
|
|
||||||
$bundleTransPath = false;
|
$bundleTransPath = false;
|
||||||
foreach ($transPaths as $path) {
|
foreach ($transPaths as $path) {
|
||||||
@ -208,6 +208,6 @@ EOF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->success($resultMessage);
|
$io->success($resultMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,10 +63,9 @@ EOF
|
|||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$stdout = $output;
|
$io = new SymfonyStyle($input, $output);
|
||||||
$output = new SymfonyStyle($input, $output);
|
|
||||||
if (false !== strpos($input->getFirstArgument(), ':l')) {
|
if (false !== strpos($input->getFirstArgument(), ':l')) {
|
||||||
$output->caution('The use of "yaml:lint" command is deprecated since version 2.7 and will be removed in 3.0. Use the "lint:yaml" instead.');
|
$io->caution('The use of "yaml:lint" command is deprecated since version 2.7 and will be removed in 3.0. Use the "lint:yaml" instead.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$filename = $input->getArgument('filename');
|
$filename = $input->getArgument('filename');
|
||||||
@ -81,7 +80,7 @@ EOF
|
|||||||
$content .= fread(STDIN, 1024);
|
$content .= fread(STDIN, 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->display($input, $stdout, $output, array($this->validate($content)));
|
return $this->display($input, $output, $output, array($this->validate($content)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 !== strpos($filename, '@') && !is_readable($filename)) {
|
if (0 !== strpos($filename, '@') && !is_readable($filename)) {
|
||||||
@ -103,7 +102,7 @@ EOF
|
|||||||
$filesInfo[] = $this->validate(file_get_contents($file), $file);
|
$filesInfo[] = $this->validate(file_get_contents($file), $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->display($input, $stdout, $output, $filesInfo);
|
return $this->display($input, $output, $io, $filesInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function validate($content, $file = null)
|
private function validate($content, $file = null)
|
||||||
@ -118,36 +117,36 @@ EOF
|
|||||||
return array('file' => $file, 'valid' => true);
|
return array('file' => $file, 'valid' => true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function display(InputInterface $input, OutputInterface $stdout, $output, $files)
|
private function display(InputInterface $input, OutputInterface $output, SymfonyStyle $io, $files)
|
||||||
{
|
{
|
||||||
switch ($input->getOption('format')) {
|
switch ($input->getOption('format')) {
|
||||||
case 'txt':
|
case 'txt':
|
||||||
return $this->displayTxt($stdout, $output, $files);
|
return $this->displayTxt($output, $io, $files);
|
||||||
case 'json':
|
case 'json':
|
||||||
return $this->displayJson($output, $files);
|
return $this->displayJson($io, $files);
|
||||||
default:
|
default:
|
||||||
throw new \InvalidArgumentException(sprintf('The format "%s" is not supported.', $input->getOption('format')));
|
throw new \InvalidArgumentException(sprintf('The format "%s" is not supported.', $input->getOption('format')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function displayTxt(OutputInterface $stdout, $output, $filesInfo)
|
private function displayTxt(OutputInterface $output, SymfonyStyle $io, $filesInfo)
|
||||||
{
|
{
|
||||||
$errors = 0;
|
$errors = 0;
|
||||||
|
|
||||||
foreach ($filesInfo as $info) {
|
foreach ($filesInfo as $info) {
|
||||||
if ($info['valid'] && $stdout->isVerbose()) {
|
if ($info['valid'] && $output->isVerbose()) {
|
||||||
$output->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
|
$io->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
|
||||||
} elseif (!$info['valid']) {
|
} elseif (!$info['valid']) {
|
||||||
++$errors;
|
++$errors;
|
||||||
$output->text(sprintf('<error> ERROR </error> in %s', $info['file']));
|
$io->text(sprintf('<error> ERROR </error> in %s', $info['file']));
|
||||||
$output->text(sprintf('<error> >> %s</error>', $info['message']));
|
$io->text(sprintf('<error> >> %s</error>', $info['message']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($errors === 0) {
|
if ($errors === 0) {
|
||||||
$output->success(sprintf('All %d YAML files contain valid syntax.', count($filesInfo)));
|
$io->success(sprintf('All %d YAML files contain valid syntax.', count($filesInfo)));
|
||||||
} else {
|
} else {
|
||||||
$output->warning(sprintf('%d YAML files have valid syntax and %d contain errors.', count($filesInfo) - $errors, $errors));
|
$io->warning(sprintf('%d YAML files have valid syntax and %d contain errors.', count($filesInfo) - $errors, $errors));
|
||||||
}
|
}
|
||||||
|
|
||||||
return min($errors, 1);
|
return min($errors, 1);
|
||||||
|
@ -394,7 +394,7 @@ class TextDescriptor extends Descriptor
|
|||||||
/**
|
/**
|
||||||
* @param array $array
|
* @param array $array
|
||||||
*/
|
*/
|
||||||
private function renderEventListenerTable(EventDispatcherInterface $eventDispatcher, $event, array $eventListeners, SymfonyStyle $renderer)
|
private function renderEventListenerTable(EventDispatcherInterface $eventDispatcher, $event, array $eventListeners, SymfonyStyle $io)
|
||||||
{
|
{
|
||||||
$tableHeaders = array('Order', 'Callable', 'Priority');
|
$tableHeaders = array('Order', 'Callable', 'Priority');
|
||||||
$tableRows = array();
|
$tableRows = array();
|
||||||
@ -404,7 +404,7 @@ class TextDescriptor extends Descriptor
|
|||||||
$tableRows[] = array(sprintf('#%d', $order + 1), $this->formatCallable($listener), $eventDispatcher->getListenerPriority($event, $listener));
|
$tableRows[] = array(sprintf('#%d', $order + 1), $this->formatCallable($listener), $eventDispatcher->getListenerPriority($event, $listener));
|
||||||
}
|
}
|
||||||
|
|
||||||
$renderer->table($tableHeaders, $tableRows);
|
$io->table($tableHeaders, $tableRows);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,9 +84,9 @@ EOF
|
|||||||
*/
|
*/
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$input->isInteractive() ? $output->title('Symfony Password Encoder Utility') : $output->newLine();
|
$input->isInteractive() ? $io->title('Symfony Password Encoder Utility') : $io->newLine();
|
||||||
|
|
||||||
$password = $input->getArgument('password');
|
$password = $input->getArgument('password');
|
||||||
$userClass = $input->getArgument('user-class');
|
$userClass = $input->getArgument('user-class');
|
||||||
@ -101,12 +101,12 @@ EOF
|
|||||||
|
|
||||||
if (!$password) {
|
if (!$password) {
|
||||||
if (!$input->isInteractive()) {
|
if (!$input->isInteractive()) {
|
||||||
$output->error('The password must not be empty.');
|
$io->error('The password must not be empty.');
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
$passwordQuestion = $this->createPasswordQuestion($input, $output);
|
$passwordQuestion = $this->createPasswordQuestion($input, $output);
|
||||||
$password = $output->askQuestion($passwordQuestion);
|
$password = $io->askQuestion($passwordQuestion);
|
||||||
}
|
}
|
||||||
|
|
||||||
$salt = null;
|
$salt = null;
|
||||||
@ -114,9 +114,9 @@ EOF
|
|||||||
if ($input->isInteractive() && !$emptySalt) {
|
if ($input->isInteractive() && !$emptySalt) {
|
||||||
$emptySalt = true;
|
$emptySalt = true;
|
||||||
|
|
||||||
$output->note('The command will take care of generating a salt for you. Be aware that some encoders advise to let them generate their own salt. If you\'re using one of those encoders, please answer \'no\' to the question below. '.PHP_EOL.'Provide the \'empty-salt\' option in order to let the encoder handle the generation itself.');
|
$io->note('The command will take care of generating a salt for you. Be aware that some encoders advise to let them generate their own salt. If you\'re using one of those encoders, please answer \'no\' to the question below. '.PHP_EOL.'Provide the \'empty-salt\' option in order to let the encoder handle the generation itself.');
|
||||||
|
|
||||||
if ($output->confirm('Confirm salt generation ?')) {
|
if ($io->confirm('Confirm salt generation ?')) {
|
||||||
$salt = $this->generateSalt();
|
$salt = $this->generateSalt();
|
||||||
$emptySalt = false;
|
$emptySalt = false;
|
||||||
}
|
}
|
||||||
@ -133,15 +133,15 @@ EOF
|
|||||||
if (!$emptySalt) {
|
if (!$emptySalt) {
|
||||||
$rows[] = array('Generated salt', $salt);
|
$rows[] = array('Generated salt', $salt);
|
||||||
}
|
}
|
||||||
$output->table(array('Key', 'Value'), $rows);
|
$io->table(array('Key', 'Value'), $rows);
|
||||||
|
|
||||||
if (!$emptySalt) {
|
if (!$emptySalt) {
|
||||||
$output->note(sprintf('Make sure that your salt storage field fits the salt length: %s chars', strlen($salt)));
|
$io->note(sprintf('Make sure that your salt storage field fits the salt length: %s chars', strlen($salt)));
|
||||||
} elseif ($bcryptWithoutEmptySalt) {
|
} elseif ($bcryptWithoutEmptySalt) {
|
||||||
$output->note('Bcrypt encoder used: the encoder generated its own built-in salt.');
|
$io->note('Bcrypt encoder used: the encoder generated its own built-in salt.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$output->success('Password encoding succeeded');
|
$io->success('Password encoding succeeded');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,11 +58,11 @@ class DebugCommand extends BaseDebugCommand implements ContainerAwareInterface
|
|||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$output = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
if (false !== strpos($input->getFirstArgument(), ':d')) {
|
||||||
$output->caution('The use of "twig:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:twig" instead.');
|
$io->caution('The use of "twig:debug" command is deprecated since version 2.7 and will be removed in 3.0. Use the "debug:twig" instead.');
|
||||||
}
|
}
|
||||||
|
|
||||||
parent::execute($input, $output);
|
parent::execute($input, $io);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user