/** * Build generators * * @param State $state * @return void */ public function build(State $state) { $model = $state->getFormFactoryModel(); $generator = new ClassGenerator($model->getName()); $generator->setImplementedInterfaces(['FactoryInterface']); $generator->addUse('Doctrine\\ORM\\EntityManager'); $generator->addUse('DoctrineModule\\Stdlib\\Hydrator\\DoctrineObject'); $generator->addUse('Zend\\ServiceManager\\FactoryInterface'); $generator->addUse('Zend\\ServiceManager\\ServiceLocatorInterface'); $generator->addUse('Zend\\Form\\Form'); $generator->addUse('Zend\\Form\\Element'); $generator->addUse('Zend\\InputFilter\\Factory'); $generator->addUse('Zend\\InputFilter\\InputFilterInterface'); $this->buildCreateService($generator, $state); $this->buildGetInputFilter($generator, $state); $model->setGenerator($generator); }
protected function write(State $state, InputInterface $input, OutputInterface $output) { $writeState = new State($this->configWriter); $writeState->addModel($state->getFormFactoryModel()); parent::write($writeState, $input, $output); }
public function buildEditAction(ClassGenerator $generator, State $state) { $service = 'get' . $state->getServiceModel()->getClassName(); $name = lcfirst($state->getEntityModel()->getClassName()); $method = new MethodGenerator('editAction'); $method->setDocBlock(new DocBlockGenerator('Show one entity')); $method->setBody(<<<EOF \$id = \$this->params()->fromRoute('id'); \${$name} = \$this->{$service}()->loadById(\$id); /** @var Form \$form */ \$form = \$this->getServiceLocator()->get('{$state->getFormFactoryModel()->getServiceName()}'); \$form->bind(\${$name}); if (\$this->getRequest()->isPost()) { \$form->setData(\$this->params()->fromPost()); if (\$form->isValid()) { \$this->{$service}()->save(\${$name}); \$this->getEntityManager()->flush(); \$this->flashMessenger()->addSuccessMessage('Saved'); \$this->redirect()->toRoute('home'); } } return array( 'form' => \$form ); EOF ); $generator->addMethodFromGenerator($method); }