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; }
/** * 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); }
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); }
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); }
/** * @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); }