示例#1
0
 /**
  * Generate Standalone Files
  *
  * @param string $bundle The bundle name
  * @param string $tag    A tag name to filter files
  */
 public function generateStandaloneFiles($bundle, $tag)
 {
     $avroGenerator = new Generator($this->container, $this->output);
     $avroGenerator->initializeBundleParameters($bundle->getName());
     $standaloneFiles = $this->container->getParameter('avro_generator.standalone_files');
     if (is_array($standaloneFiles)) {
         foreach ($standaloneFiles as $file) {
             if ($tag) {
                 if (in_array($tag, $file['tags'])) {
                     $avroGenerator->generate($file);
                 }
             } else {
                 $avroGenerator->generate($file);
             }
         }
     }
 }
 public function generateBundle($bundleName, $tag)
 {
     $filesystem = $this->container->get('filesystem');
     $this->dialog->writeSection($this->output, sprintf('%s does not exist. Would you like to create it?', $bundleName));
     if (!$this->dialog->askConfirmation($this->output, $this->dialog->getQuestion('Create a new bundle?', 'yes', '?'), true)) {
         return false;
     }
     if (Validators::validateBundleName($bundleName)) {
         list($vendor, $basename) = $this->parseBundleName($bundleName);
     } else {
         $this->dialog->writeSection($this->output, 'Welcome to the Avro bundle generator');
         // namespace
         $this->output->writeln(array('', 'Enter the vendor name for the bundle. (ie. Application, FOS, Sensio, etc)'));
         // vendor
         $vendor = $this->dialog->ask($this->output, 'Bundle vendor: ');
         $vendor = Validators::validateVendor($vendor);
         // bundle name
         $this->output->writeln(array('', 'Enter the base name of the bundle. (ie. UserBundle, CalendarBundle, etc)'));
         $basename = $this->dialog->ask($this->output, 'Bundle base name: ');
         $bundleName = Validators::validateBundleName($vendor . $basename);
     }
     //bundleNamespace
     $bundleNamespace = Validators::validateBundleNamespace($vendor . '\\' . $basename);
     $bundlePath = $this->getContainer()->getParameter('kernel.root_dir') . '/../vendor/' . lcfirst($vendor) . '/' . strtolower(str_replace('Bundle', '', $basename) . '-bundle') . '/' . $vendor . '/' . $basename . '/';
     $generator = new Generator($this->container, $this->output);
     $generator->initializeBundleParameters($vendor . $basename);
     $folders = $this->container->getParameter('avro_generator.bundle_folders');
     if (is_array($folders)) {
         foreach ($folders as $folder) {
             if ($tag && array_key_exists('tags', $folder)) {
                 if (in_array($tag, $folder['tags'])) {
                     $generator->renderFolder($bundlePath . $folder['path']);
                 }
             } else {
                 $generator->renderFolder($bundlePath . $folder['path']);
             }
         }
     }
     $files = $this->container->getParameter('avro_generator.bundle_files');
     if (is_array($files)) {
         foreach ($files as $file) {
             if ($tag && array_key_exists('tags', $file)) {
                 if (in_array($tag, $file['tags'])) {
                     $generator->renderFile($file['template'], $file['filename']);
                 }
             } else {
                 $generator->renderFile($file['template'], $file['filename']);
             }
         }
     }
 }