public function testGenerateIsCorrect() { $this->_parameter->setType('Foo'); $this->_parameter->setName('bar'); $this->_parameter->setDefaultValue(15); $this->assertEquals('Foo $bar = 15', $this->_parameter->generate()); $this->_parameter->setDefaultValue('foo'); $this->assertEquals('Foo $bar = \'foo\'', $this->_parameter->generate()); }
/** * fromReflection() * * @param Zend_Reflection_Parameter $reflectionParameter * @return Zend_CodeGenerator_Php_Parameter */ public static function fromReflection(Zend_Reflection_Parameter $reflectionParameter) { $param = new Zend_CodeGenerator_Php_Parameter(); $param->setName($reflectionParameter->getName()); if ($reflectionParameter->isArray()) { $param->setType('array'); } else { $typeClass = $reflectionParameter->getClass(); if ($typeClass !== null) { $param->setType($typeClass->getName()); } } $param->setPosition($reflectionParameter->getPosition()); if ($reflectionParameter->isOptional()) { $param->setDefaultValue($reflectionParameter->getDefaultValue()); } $param->setPassedByReference($reflectionParameter->isPassedByReference()); return $param; }
/** * @see models_ClassGenerator_Defaults_Interface::createMethodLoad */ public function createMethodLoad() { $resultMethod = new Zend_CodeGenerator_Php_Method(); $resultMethod->setName('load'); $resultMethod->setStatic(true); $resultMethod->setVisibility(Zend_CodeGenerator_Php_Property::VISIBILITY_PUBLIC); //---------------------- Parameters --------------------- $paramZendDbObj = new Zend_CodeGenerator_Php_Parameter(); $paramZendDbObj->setName('zendDbObj'); $paramZendDbObj->setType('Zend_Db_Adapter_Abstract'); $resultMethod->setParameter($paramZendDbObj); //Pkeys $pkeyAttributes = $this->getPersistenceInformation()->getPkeyAttributes(); if (!empty($pkeyAttributes)) { foreach ($pkeyAttributes as $pkeyAttribute) { /* @var $pkeyAttribute Zend_CodeGenerator_Php_Property */ $paramPkey = new Zend_CodeGenerator_Php_Parameter(); $paramPkey->setName('par' . ucfirst($pkeyAttribute->getName())); $paramPkey->setType(Model_ClassGenerator_PersistenceInformation::getType($pkeyAttribute)); $resultMethod->setParameter($paramPkey); } } //-------------------------------------------------------- //Pkeys $body = 'if(!isset(' . $this->_provideInstancesKeySelectorString() . ')){' . "\n"; $docblock = new Zend_CodeGenerator_Php_Docblock(); $docblock->setShortDescription('Loads the entry from the database.'); $resultMethod->setDocblock($docblock); $body .= "\t" . '$table = self::' . $this->_provideTableConstant() . ';' . "\n"; //TODO - Konstante! $body .= "\t" . '$select = $this->zendDbObj->select($table, \'*\');' . "\n"; $pkeyAttributes = $this->getPersistenceInformation()->getPkeyAttributes(); if (!empty($pkeyAttributes)) { foreach ($pkeyAttributes as $pkeyAttribute) { /* @var $pkeyAttribute Zend_CodeGenerator_Php_Property */ $body .= "\t" . '$select->where(self::' . $this->_provideTableConstant() . '.\'.\'.self::' . $this->_provideColumnConstant($pkeyAttribute) . '.\'=?\', $this->' . $pkeyAttribute->getName() . ');' . "\n\n"; } } $body .= "\t" . 'self::$instance' . $keysString . ' = new self($parZendDbObj);' . "\n"; $body .= '}' . "\n\n"; $body .= 'return self::$instance' . $keysString . ';'; $resultMethod->setBody($body); $this->getClass()->setMethod($resultMethod); }
/** * Create a CodeGenerator parameter * * @param string $name * @param null|string $type * @param null|bool $reference * * @return Zend_CodeGenerator_Php_Parameter */ public static function createParam($name, $type = null, $reference = null) { $param = new Zend_CodeGenerator_Php_Parameter(); $param->setName($name); if (!empty($type)) { $param->setType($type); } if ($reference === true) { $param->setPassedByReference(true); } return $param; }