Ejemplo n.º 1
0
 protected function getClassDocBlock(State $state)
 {
     $repository = $state->getRepositoryModel()->getName();
     $doc = new DocBlockGenerator();
     $doc->setTag(new Tag\GenericTag('ORM\\Entity(repositoryClass="' . $repository . '")'));
     $doc->setTag(new Tag\GenericTag('ORM\\Table(name="' . strtolower($this->config->getName()) . '")'));
     return $doc;
 }
Ejemplo n.º 2
0
 /**
  * Build generators
  *
  * @param  State|\Scaffold\State $state
  * @return \Scaffold\State|void
  */
 public function build(State $state)
 {
     $model = $state->getRepositoryModel();
     $generator = new ClassGenerator($model->getName());
     $generator->addUse('Doctrine\\ORM\\EntityRepository');
     $generator->addUse($state->getEntityModel()->getName());
     $generator->setExtendedClass('EntityRepository');
     $this->buildFactory($generator);
     $model->setGenerator($generator);
 }
Ejemplo n.º 3
0
 protected function write(State $state, InputInterface $input, OutputInterface $output)
 {
     $writeState = new State($this->configWriter);
     if (!$input->getOption('no-repository')) {
         $writeState->addModel($state->getRepositoryModel());
     }
     if (!$input->getOption('no-trait')) {
         $writeState->addModel($state->getModel('repository-trait'));
     }
     parent::write($writeState, $input, $output);
 }
    /**
     * Build generators
     *
     * @param  State|\Scaffold\State $state
     * @return \Scaffold\State|void
     */
    public function build(State $state)
    {
        $model = $this->model;
        $generator = new TraitGenerator($model->getName());
        $generator->addUse($state->getRepositoryModel()->getName());
        $property = lcfirst($state->getRepositoryModel()->getClassName());
        $class = $state->getRepositoryModel()->getClassName();
        $entity = $state->getEntityModel()->getName();
        $code = <<<EOF
if (null === \$this->{$property}) {
    \$this->{$property} = \$this->getEntityManager()->getRepository('{$entity}');
}
return \$this->{$property};
EOF;
        $this->addProperty($generator, $property, $class);
        $this->addSetter($generator, $property, $class);
        $getter = $this->getGetter($property, $class);
        $getter->setBody($code);
        $generator->addMethodFromGenerator($getter);
        //
        $model->setGenerator($generator);
    }
Ejemplo n.º 5
0
 protected function buildSearch(ClassGenerator $generator, State $state)
 {
     $repository = ucfirst($state->getRepositoryModel()->getClassName());
     $body = 'return $this->get' . $repository . '()->findBy($criteria);';
     $method = new MethodGenerator('search');
     $method->setParameter(new ParameterGenerator('criteria', 'array', []));
     $method->setDocBlock(new DocBlockGenerator());
     $method->getDocBlock()->setTag(new Tag\GenericTag('param', 'array $criteria'));
     $method->getDocBlock()->setTag(new Tag\GenericTag('return', $state->getEntityModel()->getClassName() . '[]'));
     $method->setBody($body);
     $generator->addMethodFromGenerator($method);
 }
Ejemplo n.º 6
0
    /**
     * @param ClassGenerator $generator
     * @param State          $state
     */
    public function addGetRepository(ClassGenerator $generator, State $state)
    {
        $class = $state->getRepositoryModel()->getClassName();
        $doc = "@return \\PHPUnit_Framework_MockObject_MockObject|" . $class;
        $class = $state->getRepositoryModel()->getName();
        $body = <<<EOF
return \$this->getMockBuilder('{$class}')
    ->disableOriginalConstructor()
    ->getMock();
EOF;
        $method = new MethodGenerator('getRepository', [], MethodGenerator::FLAG_PUBLIC, $body, $doc);
        $generator->addMethodFromGenerator($method);
    }