/** * @see Console\Command\Command */ protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output) { $dm = $this->getDocumentManager(); $metadatas = $dm->getMetadataFactory()->getAllMetadata(); $metadatas = MetadataFilter::filter($metadatas, $input->getOption('filter')); // Process destination directory if (($destPath = $input->getArgument('dest-path')) === null) { $destPath = $dm->getConfiguration()->getHydratorDir(); } if (!is_dir($destPath)) { mkdir($destPath, 0777, true); } $destPath = realpath($destPath); if (!file_exists($destPath)) { throw new \InvalidArgumentException(sprintf("Hydrators destination directory '<info>%s</info>' does not exist.", $destPath)); } elseif (!is_writable($destPath)) { throw new \InvalidArgumentException(sprintf("Hydrators destination directory '<info>%s</info>' does not have write permissions.", $destPath)); } if (count($metadatas)) { foreach ($metadatas as $metadata) { $output->write(sprintf('Processing document "<info>%s</info>"', $metadata->name) . PHP_EOL); } // Generating Hydrators $dm->getHydratorFactory()->generateHydratorClasses($metadatas, $destPath); // Outputting information message $output->write(PHP_EOL . sprintf('Hydrator classes generated to "<info>%s</INFO>"', $destPath) . PHP_EOL); } else { $output->write('No Metadata Classes to process.' . PHP_EOL); } }
/** * @see Console\Command\Command */ protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output) { $dm = $this->getDocumentManager(); $metadatas = $dm->getMetadataFactory()->getAllMetadata(); $metadatas = MetadataFilter::filter($metadatas, $input->getOption('filter')); // Process destination directory $destPath = realpath($input->getArgument('dest-path')); if (!file_exists($destPath)) { throw new \InvalidArgumentException(sprintf("Documents destination directory '<info>%s</info>' does not exist.", $destPath)); } elseif (!is_writable($destPath)) { throw new \InvalidArgumentException(sprintf("Documents destination directory '<info>%s</info>' does not have write permissions.", $destPath)); } if (count($metadatas)) { $numRepositories = 0; $generator = new DocumentRepositoryGenerator(); foreach ($metadatas as $metadata) { if ($metadata->customRepositoryClassName) { $output->write(sprintf('Processing repository "<info>%s</info>"', $metadata->customRepositoryClassName) . PHP_EOL); $generator->writeDocumentRepositoryClass($metadata->customRepositoryClassName, $destPath); $numRepositories++; } } if ($numRepositories) { // Outputting information message $output->write(PHP_EOL . sprintf('Repository classes generated to "<info>%s</INFO>"', $destPath) . PHP_EOL); } else { $output->write('No Repository classes were found to be processed.' . PHP_EOL); } } else { $output->write('No Metadata Classes to process.' . PHP_EOL); } }
/** * @see Console\Command\Command */ protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output) { $dm = $this->getDocumentManager(); $cmf = new DisconnectedClassMetadataFactory(); $cmf->setDocumentManager($dm); $cmf->setConfiguration($dm->getConfiguration()); $metadatas = $cmf->getAllMetadata(); $metadatas = MetadataFilter::filter($metadatas, $input->getOption('filter')); // Process destination directory $destPath = realpath($input->getArgument('dest-path')); if (!file_exists($destPath)) { throw new \InvalidArgumentException(sprintf("Documents destination directory '<info>%s</info>' does not exist.", $destPath)); } elseif (!is_writable($destPath)) { throw new \InvalidArgumentException(sprintf("Documents destination directory '<info>%s</info>' does not have write permissions.", $destPath)); } if (count($metadatas)) { // Create DocumentGenerator $documentGenerator = new DocumentGenerator(); $documentGenerator->setGenerateAnnotations($input->getOption('generate-annotations')); $documentGenerator->setGenerateStubMethods($input->getOption('generate-methods')); $documentGenerator->setRegenerateDocumentIfExists($input->getOption('regenerate-documents')); $documentGenerator->setUpdateDocumentIfExists($input->getOption('update-documents')); $documentGenerator->setNumSpaces($input->getOption('num-spaces')); if (($extend = $input->getOption('extend')) !== null) { $documentGenerator->setClassToExtend($extend); } foreach ($metadatas as $metadata) { $output->writeln(sprintf('Processing document "<info>%s</info>".', $metadata->name)); } // Generating Documents $documentGenerator->generate($metadatas, $destPath); // Outputting information message $output->writeln(array('', sprintf('Document classes have been generated to "<info>%s</info>".', $destPath))); } else { $output->writeln('No Metadata Classes to process.'); } }