/** * @see models_ClassGenerator_Defaults_Interface::createAttributesSqlConstants */ public function createAttributesSqlConstants() { //Table $constTable = new Zend_CodeGenerator_Php_Property(); $constTable->setConst(true); $constTable->setName($this->_provideTableConstant()); $constTable->setDefaultValue($this->getPersistenceInformation()->getTableName()); $tableDocblock = new Zend_CodeGenerator_Php_Docblock(); $tableDocblock->setLongDescription('The SQL table to persist all properties to.'); $tableTagType = new Zend_CodeGenerator_Php_Docblock_Tag(); $tableTagType->setName('var'); $tableTagType->setDescription(Zend_CodeGenerator_Php_Property_DefaultValue::TYPE_STRING); $tableDocblock->setTag($tableTagType); $constTable->setDocblock($tableDocblock); //Einfügen! $this->getClass()->setProperty($constTable); //Columns $columnConstants = $this->_provideSqlColumnConstants(); if (!empty($columnConstants)) { foreach ($columnConstants as $columnConstant => $attribute) { /* @var $attribute Zend_CodeGenerator_Php_Property */ $constCol = new Zend_CodeGenerator_Php_Property(); $constCol->setConst(true); $constCol->setName($columnConstant); $constCol->setDefaultValue(Model_ClassGenerator_PersistenceInformation::toColumnName($attribute)); $colDocblock = new Zend_CodeGenerator_Php_Docblock(); $colDocblock->setLongDescription('The SQL table colum to persist the attribute $' . $attribute->getName() . ' to.'); $colTagType = new Zend_CodeGenerator_Php_Docblock_Tag(); $colTagType->setName('var'); $colTagType->setDescription(Zend_CodeGenerator_Php_Property_DefaultValue::TYPE_STRING); $colDocblock->setTag($colTagType); $constCol->setDocblock($colDocblock); //Einfügen! $this->getClass()->setProperty($constCol); } } }
/** * @group ZF-7361 */ public function testHasProperty() { $property = new Zend_CodeGenerator_Php_Property(); $property->setName('propertyOne'); $codeGenClass = new Zend_CodeGenerator_Php_Class(); $codeGenClass->setProperty($property); $this->assertTrue($codeGenClass->hasProperty('propertyOne')); }
/** * @group ZF-11513 */ public function testAllowsClassConstantToHaveSameNameAsClassProperty() { $const = new Zend_CodeGenerator_Php_Property(); $const->setName('name')->setDefaultValue('constant')->setConst(true); $property = new Zend_CodeGenerator_Php_Property(); $property->setName('name')->setDefaultValue('property'); $codeGenClass = new Zend_CodeGenerator_Php_Class(); $codeGenClass->setName('My_Class')->setProperties(array($const, $property)); $expected = <<<CODE class My_Class { const name = 'constant'; public \$name = 'property'; } CODE; $this->assertEquals($expected, $codeGenClass->generate()); }