public function testEntityExtendsStdClass() { $this->_generator->setClassToExtend('stdClass'); $metadata = $this->generateBookEntityFixture(); $book = $this->newInstance($metadata); $this->assertInstanceOf('stdClass', $book); }
/** * @inheritdoc */ public function run() { $printer = $this->getPrinter(); $arguments = $this->getArguments(); $from = $arguments['from']; $dest = realpath($arguments['dest']); $entityGenerator = new EntityGenerator(); $entityGenerator->setGenerateAnnotations(false); $entityGenerator->setGenerateStubMethods(true); $entityGenerator->setRegenerateEntityIfExists(false); $entityGenerator->setUpdateEntityIfExists(true); if (isset($arguments['extend']) && $arguments['extend']) { $entityGenerator->setClassToExtend($arguments['extend']); } if (isset($arguments['num-spaces']) && $arguments['extend']) { $entityGenerator->setNumSpaces($arguments['num-spaces']); } $reader = new ClassMetadataReader(); $reader->setEntityManager($this->getConfiguration()->getAttribute('em')); $reader->addMappingSource($from); $metadatas = $reader->getMetadatas(); foreach ($metadatas as $metadata) { $printer->writeln(sprintf('Processing entity "%s"', $printer->format($metadata->name, 'KEYWORD'))); } $entityGenerator->generate($metadatas, $dest); $printer->write(PHP_EOL); $printer->writeln(sprintf('Entity classes generated to "%s"', $printer->format($dest, 'KEYWORD'))); }
/** * @see Console\Command\Command */ protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output) { $em = $this->getHelper('em')->getEntityManager(); if (\Zend_Registry::isRegistered(\LoSo_Zend_Application_Bootstrap_SymfonyContainerBootstrap::getRegistryIndex()) && ($container = \Zend_Registry::get(\LoSo_Zend_Application_Bootstrap_SymfonyContainerBootstrap::getRegistryIndex())) instanceof \Symfony\Component\DependencyInjection\ContainerInterface) { $mappingPaths = $container->getParameter('doctrine.orm.mapping_paths'); $entitiesPaths = $container->getParameter('doctrine.orm.entities_paths'); } else { $doctrineConfig = \Zend_Registry::get('doctrine.config'); $mappingPaths = $doctrineConfig['doctrine.orm.mapping_paths']; $entitiesPaths = $doctrineConfig['doctrine.orm.entities_paths']; } $cmf = new DisconnectedClassMetadataFactory($em); $metadatas = $cmf->getAllMetadata(); foreach ($mappingPaths as $namespace => $mappingPath) { // Process destination directory $destPath = realpath($entitiesPaths[$namespace]); if (!file_exists($destPath)) { throw new \InvalidArgumentException(sprintf("Entities destination directory '<info>%s</info>' does not exist.", $destPath)); } else { if (!is_writable($destPath)) { throw new \InvalidArgumentException(sprintf("Entities destination directory '<info>%s</info>' does not have write permissions.", $destPath)); } } $moduleMetadatas = MetadataFilter::filter($metadatas, $namespace); if (count($moduleMetadatas)) { // Create EntityGenerator $entityGenerator = new EntityGenerator(); $entityGenerator->setGenerateAnnotations($input->getOption('generate-annotations')); $entityGenerator->setGenerateStubMethods($input->getOption('generate-methods')); $entityGenerator->setRegenerateEntityIfExists($input->getOption('regenerate-entities')); $entityGenerator->setUpdateEntityIfExists($input->getOption('update-entities')); $entityGenerator->setNumSpaces($input->getOption('num-spaces')); if (($extend = $input->getOption('extend')) !== null) { $entityGenerator->setClassToExtend($extend); } foreach ($moduleMetadatas as $metadata) { $output->write(sprintf('Processing entity "<info>%s</info>"', $metadata->name) . PHP_EOL); } // Generating Entities $entityGenerator->generate($moduleMetadatas, $destPath); $this->_processNamespaces($destPath, $namespace); // Outputting information message $output->write(sprintf('Entity classes generated to "<info>%s</INFO>"', $destPath) . PHP_EOL); } else { $output->write('No Metadata Classes to process.' . PHP_EOL); } } /*$output->write(PHP_EOL . 'Reset database.' . PHP_EOL); $metadatas = $em->getMetadataFactory()->getAllMetadata(); $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($em); $output->write('Dropping database schema...' . PHP_EOL); $schemaTool->dropSchema($metadatas); $output->write('Database schema dropped successfully!' . PHP_EOL); $output->write('Creating database schema...' . PHP_EOL); $schemaTool->createSchema($metadatas); $output->write('Database schema created successfully!' . PHP_EOL);*/ }
protected function initGenerator() { $this->generator->setGenerateAnnotations(true); $this->generator->setBackupExisting(false); $this->generator->setGenerateStubMethods(true); $this->generator->setRegenerateEntityIfExists(true); $this->generator->setUpdateEntityIfExists(false); if ($this->parentClassName != null) { $this->generator->setClassToExtend($this->parentClassName); } return $this->generator; }
/** * @see Console\Command\Command */ protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output) { $em = $this->getHelper('em')->getEntityManager(); $cmf = new DisconnectedClassMetadataFactory(); $cmf->setEntityManager($em); $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("Entities destination directory '<info>%s</info>' does not exist.", $destPath)); } else { if (!is_writable($destPath)) { throw new \InvalidArgumentException(sprintf("Entities destination directory '<info>%s</info>' does not have write permissions.", $destPath)); } } if (count($metadatas)) { // Create EntityGenerator $entityGenerator = new EntityGenerator(); $entityGenerator->setGenerateAnnotations($input->getOption('generate-annotations')); $entityGenerator->setGenerateStubMethods($input->getOption('generate-methods')); $entityGenerator->setRegenerateEntityIfExists($input->getOption('regenerate-entities')); $entityGenerator->setUpdateEntityIfExists($input->getOption('update-entities')); $entityGenerator->setNumSpaces($input->getOption('num-spaces')); if (($extend = $input->getOption('extend')) !== null) { $entityGenerator->setClassToExtend($extend); } foreach ($metadatas as $metadata) { $output->write(sprintf('Processing entity "<info>%s</info>"', $metadata->name) . PHP_EOL); } // Generating Entities $entityGenerator->generate($metadatas, $destPath); // Outputting information message $output->write(PHP_EOL . sprintf('Entity classes generated to "<info>%s</INFO>"', $destPath) . PHP_EOL); } else { $output->write('No Metadata Classes to process.' . PHP_EOL); } }
/** * Get a Doctrine EntityGenerator instance. * * @param string|null $classToExtend * * @return EntityGenerator */ protected function getEntityGenerator($classToExtend = null) { $entityGenerator = new EntityGenerator(); if (!is_null($classToExtend)) { $entityGenerator->setClassToExtend($classToExtend); } $entityGenerator->setGenerateAnnotations(true); $entityGenerator->setGenerateStubMethods(true); $entityGenerator->setRegenerateEntityIfExists(false); $entityGenerator->setUpdateEntityIfExists(true); $entityGenerator->setNumSpaces(4); $entityGenerator->setAnnotationPrefix('ORM\\'); return $entityGenerator; }
/** * @return \Doctrine\ORM\Tools\EntityGenerator */ protected function getEntityGenerator() { $entityGenerator = new EntityGenerator(); $entityGenerator->setClassToExtend('Kunstmaan\\AdminBundle\\Entity\\AbstractEntity'); $entityGenerator->setGenerateAnnotations(true); $entityGenerator->setGenerateStubMethods(true); $entityGenerator->setRegenerateEntityIfExists(false); $entityGenerator->setUpdateEntityIfExists(true); $entityGenerator->setNumSpaces(4); $entityGenerator->setAnnotationPrefix('ORM\\'); return $entityGenerator; }
/** * Generate entity classes * * @param array $metadata */ protected function generateEntities(array $metadata) { $generator = new EntityGenerator(); $generator->setGenerateAnnotations(true); $generator->setGenerateStubMethods(true); $generator->setRegenerateEntityIfExists(false); $generator->setUpdateEntityIfExists(true); $generator->setBackupExisting(false); if (null !== ($superclass = $this->getSuperclass())) { $generator->setClassToExtend($superclass); } /* @var $classMetadata \Doctrine\ORM\Mapping\ClassMetadata */ foreach ($metadata as $classMetadata) { $className = end(explode('\\', $classMetadata->getName())); $classMetadata->setCustomRepositoryClass($this->getNsRepository() . $className); if (null !== ($prefix = $this->getSequencePrefix())) { $classMetadata->setSequenceGeneratorDefinition(array('sequenceName' => strtoupper($prefix . '_' . $className))); } } $generator->generate($metadata, $this->getDirectory()); }