zend框架和学说(getter and setters)

时间:2009-12-16 21:46:12

标签: zend-framework doctrine getter-setter

是否可以在现有实体模型上使用原则,如:

class user{
protected $_id;
protected $_name;

public function set_id($_id){}
public function get_id(){}
public function set_name($_name){}
public function get_name(){}
}

或生成或使用带有硬编码的getter和setter的模型。

我不想使用

$user->name
$user['name'] 
$user->get('name')

这可以用学说来完成吗?

Thanx

1 个答案:

答案 0 :(得分:3)

适用于Doctrine 1.2的所有版本: 您的实体模型类需要扩展Doctrine_Record类。

模型字段的定义也需要以“学说方式”来完成。 请参阅:http://www.doctrine-project.org/documentation/manual/1_2/en/defining-models

示例:

  

public function setTableDefinition()      {

   $this->hasColumn('username', 'string', 255);
   $this->hasColumn('password', 'string', 255);
     

}

如果您想使用自己的自定义硬编码设置器/吸气器,您可以覆盖魔术吸气剂/设定器。 请参阅:http://www.doctrine-project.org/documentation/manual/1_2/en/introduction-to-models 例如:

  

类用户扩展BaseUser {

public function setPassword($password)
{
    return $this->_set('password', md5($password));
} 
     

}

最后一个评论/问题:使用魔术setter / getter方法是一种很好的做法。如果你需要以某种方式操作数据,你应该只使用自定义方法。