Ejemplo n.º 1
0
 /**
  * @see Command
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $dialog = $this->getQuestionHelper();
     if ($input->isInteractive()) {
         if (!$dialog->ask($input, $output, new ConfirmationQuestion($dialog->getQuestion('Do you confirm generation', 'yes', '?')), true)) {
             $output->writeln('<error>Command aborted</error>');
             return 1;
         }
     }
     $document = Validators::validateDocumentName($input->getOption('document'));
     list($bundle, $document) = $this->parseShortcutNotation($document);
     $format = Validators::validateFormat($input->getOption('format'));
     $prefix = $this->getRoutePrefix($input, $document);
     $withWrite = $input->getOption('with-write');
     $dialog->writeSection($output, 'CRUD generation');
     $documentClass = $this->getDocumentNamespace($bundle) . '\\' . $document;
     $metadata = $this->getDocumentMetadata($documentClass);
     $bundle = $this->getBundle($bundle);
     $generator = $this->getGenerator();
     $generator->generate($bundle, $document, $metadata, $format, $prefix, $withWrite);
     $output->writeln('Generating the CRUD code: <info>OK</info>');
     $errors = array();
     $runner = $dialog->getRunner($output, $errors);
     // form
     if ($withWrite) {
         $this->generateForm($bundle, $document, $metadata);
         $output->writeln('Generating the Form code: <info>OK</info>');
     }
     // routing
     if ('annotation' != $format) {
         call_user_func($runner, $this->updateRouting($dialog, $input, $output, $bundle, $format, $document, $prefix));
     }
     $dialog->writeGeneratorSummary($output, $errors);
     return 0;
 }