. */ namespace Doctrine\ORM\Tools\Console\Command; use Doctrine\ORM\Mapping\MappingException; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Command\Command; /** * Show information about mapped entities. * * @link www.doctrine-project.org * @since 2.1 * @author Benjamin Eberlei */ class InfoCommand extends Command { /** * {@inheritdoc} */ protected function configure() { $this ->setName('orm:info') ->setDescription('Show basic information about all mapped entities') ->setHelp(<<%command.name% shows basic information about which entities exist and possibly if their mapping information contains errors or not. EOT ); } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { /* @var $entityManager \Doctrine\ORM\EntityManager */ $entityManager = $this->getHelper('em')->getEntityManager(); $entityClassNames = $entityManager->getConfiguration() ->getMetadataDriverImpl() ->getAllClassNames(); if (!$entityClassNames) { throw new \Exception( 'You do not have any mapped Doctrine ORM entities according to the current configuration. '. 'If you have entities or mapping files you should check your mapping configuration for errors.' ); } $output->writeln(sprintf("Found %d mapped entities:", count($entityClassNames))); $failure = false; foreach ($entityClassNames as $entityClassName) { try { $entityManager->getClassMetadata($entityClassName); $output->writeln(sprintf("[OK] %s", $entityClassName)); } catch (MappingException $e) { $output->writeln("[FAIL] ".$entityClassName); $output->writeln(sprintf("%s", $e->getMessage())); $output->writeln(''); $failure = true; } } return $failure ? 1 : 0; } }