public function generate() { $modelBuilder = $this->controller->getModelBuilder(); $className = $modelBuilder->getName() . 'Controller'; $class = new ClassGenerator(); $class->setName($className); $class->setExtendedClass('CrudController'); $param = new ParameterGenerator(); $param->setName('fb')->setType('FormBuilder'); $body = $this->generateFormBuilderBody(); $docblock = '@param FormBuilder $fb'; $class->addMethod('buildForm', array($param), MethodGenerator::FLAG_PUBLIC, $body, $docblock); $param = new ParameterGenerator(); $param->setName('mb')->setType('ModelBuilder'); $body = ''; $docblock = '@param ModelBuilder $mb'; $class->addMethod('buildModel', array($param), MethodGenerator::FLAG_PUBLIC, $body, $docblock); $param = new ParameterGenerator(); $param->setName('ob')->setType('OverviewBuilder'); $body = ''; $docblock = '@param OverviewBuilder $ob'; $class->addMethod('buildOverview', array($param), MethodGenerator::FLAG_PUBLIC, $body, $docblock); $this->generator->setClass($class); $this->generator->setUses(array('Boyhagemann\\Crud\\CrudController', 'Boyhagemann\\Form\\FormBuilder', 'Boyhagemann\\Model\\ModelBuilder', 'Boyhagemann\\Overview\\OverviewBuilder')); return $this->generator->generate(); }
private function addToConfigObjects($objectName, $objectHandlerName, $objectHandlerFactoryName) { $conf = (include $this->confPath); $fileGenerator = FileGenerator::fromReflectedFileName($this->confPath); $conf['service_manager']['factories'][$objectHandlerName] = $objectHandlerFactoryName; $conf['tactician']['handler-map'][$objectName] = $objectHandlerName; $body = sprintf('return %s;', var_export($conf, TRUE)); $newFile = new FileGenerator(); $newFile->setUses($fileGenerator->getUses()); $newFile->setBody($body); file_put_contents($this->confPath, $newFile->generate()); }
public function testSetUsesWithGetUses() { $file = new FileGenerator(); $uses = array('Your\\Bar', 'My\\Baz', array('use' => 'Another\\Baz', 'as' => 'Baz2')); $file->setUses($uses); $file->setUses($file->getUses()); $generated = $file->generate(); $this->assertContains('use My\\Baz;', $generated); $this->assertContains('use Your\\Bar;', $generated); $this->assertContains('use Another\\Baz as Baz2;', $generated); }