*/ class EntitySchemaCommand extends ContainerAwareCommand { protected function configure() { $this ->setName('irstea:plantuml:entities') ->setDescription("Génère un schéma PlantUML à partir des métadonnées de Doctrine."); } /** * * @param InputInterface $input * @param OutputInterface $output * * @SuppressWarnings(UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output) { /* @var $manager EntityManagerInterface */ $manager = $this->getContainer()->get('doctrine.orm.entity_manager'); $factory = $manager->getMetadataFactory(); $allMetadata = $factory->getAllMetadata(); $visitor = new EntityVisitor($allMetadata); foreach($allMetadata as $metadata) { /* @var $metadata ClassMetadata */ $visitor->visitClass($metadata->getName()); } $stream = fopen("php://output", "wt"); fputs($stream, "@startuml\n"); fputs($stream, "set namespaceSeparator .\n"); $visitor->outputTo($stream); fputs($stream, "@enduml\n"); fclose($stream); } }