фреймворк zend и доктрина (получатели и установщики)

StackOverflow https://stackoverflow.com/questions/1917993

Вопрос

Можно ли использовать doctrine для существующих моделей сущностей, таких как:

class user{
protected $_id;
protected $_name;

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

или создавать или использовать модели с жестко запрограммированными приемниками и установщиками.

Я не хочу использовать

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

можно ли это сделать с помощью doctrine?

Спасибо

Это было полезно?

Решение

Для всех Версий вплоть до Doctrine 1.2:Вашему классу entity models необходимо расширить класс Doctrine_Record.

Определение полей модели также должно быть выполнено "доктринальным способом".Видишь: http://www.doctrine-project.org/documentation/manual/1_2/en/defining-models

пример:

публичная функция setTableDefinition() {

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

}

Если вы хотите использовать свои собственные жестко закодированные установщики / геттеры, вы можете переопределить волшебные получатели / сеттеры.Видишь: http://www.doctrine-project.org/documentation/manual/1_2/en/introduction-to-models пример:

класс User расширяет BaseUser {

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

}

Последнее замечание /вопрос:Использование методов magic setter / getter является хорошей практикой..Вы должны использовать пользовательские методы только в том случае, если вам нужно каким-то образом манипулировать данными.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top