protected function writeSerializerFile(OutputInterface $output, BundleMetadata $bundleMetadata, $template, $destFile, $name) { if (is_file($destFile)) { $output->writeln(sprintf(' ~ <info>%s</info>', $name)); } else { $output->writeln(sprintf(' + <info>%s</info>', $name)); $string = Mustache::replace($template, array('name' => $name, 'namespace' => $bundleMetadata->getExtendedNamespace(), 'root_name' => strtolower(preg_replace('/[A-Z]/', '_\\0', $name)))); file_put_contents($destFile, $string); } }
/** * @param OutputInterface $output * @param BundleMetadata $bundleMetadata */ protected function generateBundleFile(OutputInterface $output, BundleMetadata $bundleMetadata) { $file = sprintf('%s/Application%s.php', $bundleMetadata->getExtendedDirectory(), $bundleMetadata->getName()); if (is_file($file)) { return; } $output->writeln(sprintf(' > generating bundle file <comment>%s</comment>', $file)); $string = Mustache::replace($this->getBundleTemplate(), array('bundle' => $bundleMetadata->getName(), 'namespace' => $bundleMetadata->getExtendedNamespace())); file_put_contents($file, $string); }
public function __construct(BundleMetadata $bundleMetadata) { $this->mappingDocumentDirectory = sprintf('%s/Resources/config/doctrine/', $bundleMetadata->getBundle()->getPath()); $this->extendedMappingDocumentDirectory = sprintf('%s/Resources/config/doctrine/', $bundleMetadata->getExtendedDirectory()); $this->documentDirectory = sprintf('%s/Document', $bundleMetadata->getBundle()->getPath()); $this->extendedDocumentDirectory = sprintf('%s/Document', $bundleMetadata->getExtendedDirectory()); $this->extendedSerializerDirectory = sprintf('%s/Resources/config/serializer', $bundleMetadata->getExtendedDirectory()); }
/** * @param OutputInterface $output * @param BundleMetadata $bundleMetadata */ public function generateEntityRepositoryFiles(OutputInterface $output, BundleMetadata $bundleMetadata) { $output->writeln(' - Generating entity repository files'); $names = $bundleMetadata->getOrmMetadata()->getEntityNames(); foreach ($names as $name) { $dest_file = sprintf('%s/%sRepository.php', $bundleMetadata->getOrmMetadata()->getExtendedEntityDirectory(), $name); $src_file = sprintf('%s/Base%sRepository.php', $bundleMetadata->getOrmMetadata()->getEntityDirectory(), $name); if (!is_file($src_file)) { $output->writeln(sprintf(' ! <info>%sRepository</info>', $name)); continue; } if (is_file($dest_file)) { $output->writeln(sprintf(' ~ <info>%sRepository</info>', $name)); } else { $output->writeln(sprintf(' + <info>%sRepository</info>', $name)); $string = Mustache::replace($this->getEntityRepositoryTemplate(), array('extended_namespace' => $bundleMetadata->getExtendedNamespace(), 'name' => $name, 'namespace' => $bundleMetadata->getNamespace())); file_put_contents($dest_file, $string); } } }
/** * @param $bundleMetadata */ public function setConfigFolders(BundleMetadata $bundleMetadata) { $this->mappingConfigDirectory = sprintf('%s/Resources/config', $bundleMetadata->getBundle()->getPath()); $this->mappingSerializerDirectory = sprintf('%s/Resources/config/serializer', $bundleMetadata->getBundle()->getPath()); $this->extendedConfigDirectory = sprintf('%s/Resources/config', $bundleMetadata->getExtendedDirectory()); $this->extendedSerializerDirectory = sprintf('%s/Resources/config/serializer', $bundleMetadata->getExtendedDirectory()); }
/** * Generates a bundle entities from a bundle name. * * @param string $bundleName * @param array $configuration * @param OutputInterface $output * * @return bool */ protected function generate($bundleName, array $configuration, $output) { $processed = false; foreach ($this->getContainer()->get('kernel')->getBundles() as $bundle) { if ($bundle->getName() != $bundleName) { continue; } $processed = true; $bundleMetadata = new BundleMetadata($bundle, $configuration); // generate the bundle file if (!$bundleMetadata->isExtendable()) { $output->writeln(sprintf('Ignoring bundle : "<comment>%s</comment>"', $bundleMetadata->getClass())); continue; } // generate the bundle file if (!$bundleMetadata->isValid()) { $output->writeln(sprintf('%s : <comment>wrong folder structure</comment>', $bundleMetadata->getClass())); continue; } $output->writeln(sprintf('Processing bundle : "<info>%s</info>"', $bundleMetadata->getName())); $this->getContainer()->get('sonata.easy_extends.generator.bundle')->generate($output, $bundleMetadata); $output->writeln(sprintf('Processing Doctrine ORM : "<info>%s</info>"', $bundleMetadata->getName())); $this->getContainer()->get('sonata.easy_extends.generator.orm')->generate($output, $bundleMetadata); $output->writeln(sprintf('Processing Doctrine ODM : "<info>%s</info>"', $bundleMetadata->getName())); $this->getContainer()->get('sonata.easy_extends.generator.odm')->generate($output, $bundleMetadata); $output->writeln(sprintf('Processing Doctrine PHPCR : "<info>%s</info>"', $bundleMetadata->getName())); $this->getContainer()->get('sonata.easy_extends.generator.phpcr')->generate($output, $bundleMetadata); $output->writeln(sprintf('Processing Serializer config : "<info>%s</info>"', $bundleMetadata->getName())); $this->getContainer()->get('sonata.easy_extends.generator.serializer')->generate($output, $bundleMetadata); $output->writeln(''); } return $processed; }
public function testBundleName() { $bundle = new \Sonata\AcmeBundle\AcmeBundle(); $bundleMetadata = new BundleMetadata($bundle, array('application_dir' => 'Application')); $this->assertFalse($bundleMetadata->isValid()); }