src/ObjectManager/Command/GeneratorCommand.php line 21

Open in your IDE?
  1. <?php
  2. /*
  3.  * To change this license header, choose License Headers in Project Properties.
  4.  * To change this template file, choose Tools | Templates
  5.  * and open the template in the editor.
  6.  */
  7. namespace App\ObjectManager\Command;
  8. use Symfony\Component\HttpKernel\Bundle\BundleInterface;
  9. use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
  10. use App\ObjectManager\Command\Generator\Generator;
  11. use App\ObjectManager\Command\Helper\QuestionHelper;
  12. /**
  13.  * Description of GeneratorCommand
  14.  *
  15.  * @author Kossi GOTRI <kossi.gotri@gmail.com>
  16.  */
  17. abstract class GeneratorCommand extends ContainerAwareCommand {
  18.     private $generator;
  19.     // only useful for unit tests
  20.     public function setGenerator(Generator $generator) {
  21.         $this->generator $generator;
  22.     }
  23.     abstract protected function createGenerator();
  24.     protected function getGenerator(BundleInterface $bundle null) {
  25.         if (null === $this->generator) {
  26.             $this->generator $this->createGenerator();
  27.             $this->generator->setSkeletonDirs($this->getSkeletonDirs($bundle));
  28.         }
  29.         return $this->generator;
  30.     }
  31.     protected function getSkeletonDirs(BundleInterface $bundle null) {
  32.         $skeletonDirs = array();
  33.         if (isset($bundle) && is_dir($dir $bundle->getPath() . '/Resources/SensioGeneratorBundle/skeleton')) {
  34.             $skeletonDirs[] = $dir;
  35.         }
  36.         if (is_dir($dir $this->getContainer()->get('kernel')->getRootdir() . '/Resources/SensioGeneratorBundle/skeleton')) {
  37.             $skeletonDirs[] = $dir;
  38.         }
  39.         $skeletonDirs[] = __DIR__ '/../Resources/skeleton';
  40.         $skeletonDirs[] = __DIR__ '/../Resources';
  41.         return $skeletonDirs;
  42.     }
  43.     protected function getQuestionHelper() {
  44.         $question $this->getHelperSet()->get('question');
  45.         if (!$question || get_class($question) !== 'Sensio\Bundle\GeneratorBundle\Command\Helper\QuestionHelper') {
  46.             $this->getHelperSet()->set($question = new QuestionHelper());
  47.         }
  48.         return $question;
  49.     }
  50. }