setName('orm:info') ->setDescription('Show basic information about all mapped entities') ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') ->setHelp(<<<'EOT' The %command.name% shows basic information about which entities exist and possibly if their mapping information contains errors or not. EOT); } protected function execute(InputInterface $input, OutputInterface $output): int { $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); $entityManager = $this->getEntityManager($input); $entityClassNames = $entityManager->getConfiguration() ->getMetadataDriverImpl() ->getAllClassNames(); if (! $entityClassNames) { $ui->caution( [ '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.', ], ); return 1; } $ui->text(sprintf('Found %d mapped entities:', count($entityClassNames))); $ui->newLine(); $failure = false; foreach ($entityClassNames as $entityClassName) { try { $entityManager->getClassMetadata($entityClassName); $ui->text(sprintf('[OK] %s', $entityClassName)); } catch (MappingException $e) { $ui->text( [ sprintf('[FAIL] %s', $entityClassName), sprintf('%s', $e->getMessage()), '', ], ); $failure = true; } } return $failure ? 1 : 0; } }