1
0
mirror of synced 2025-01-09 18:47:10 +03:00

adds a new output format

This commit is contained in:
Johannes M. Schmitt 2013-03-03 11:01:43 +01:00
parent 2372a85d9f
commit b4b9709090

View File

@ -25,6 +25,7 @@ use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Doctrine\Common\Util\Debug;
use JMS\Serializer\SerializerBuilder;
/**
* Command to execute DQL queries in a given EntityManager.
@ -64,6 +65,11 @@ class RunDqlCommand extends Command
new InputOption(
'depth', null, InputOption::VALUE_REQUIRED,
'Dumping depth of Entity graph.', 7
),
new InputOption(
'format', null, InputOption::VALUE_REQUIRED,
'The output format of the result. Available formats: doctrine-debug (default), jms-serializer-json.',
'doctrine-debug'
)
))
->setHelp(<<<EOT
@ -118,6 +124,22 @@ EOT
$resultSet = $query->execute(array(), constant($hydrationMode));
Debug::dump($resultSet, $input->getOption('depth'));
switch ($input->getOption('format')) {
case 'doctrine-debug':
ob_start();
Debug::dump($resultSet, $input->getOption('depth'));
$message = ob_get_clean();
$output->write($message);
break;
case 'jms-serializer-json':
$serializer = SerializerBuilder::create()->build();
$output->write($serializer->serialize($resultSet, 'json'));
break;
default:
throw new \RuntimeException(sprintf('Unknown output format "%s"; available formats: doctrine-debug, jms-serializer-json', $input->getOption('format')));
}
}
}