Zend Framework и доктрина (геттеры и сеттеры) - PullRequest
1 голос
/ 17 декабря 2009

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

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')

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

Спасибо

1 Ответ

3 голосов
/ 17 декабря 2009

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

Определение полей модели также должно быть выполнено «доктринальным путем». См. http://www.doctrine -project.org / документация / руководство / 1_2 / ru / defining-models

пример:

открытая функция setTableDefinition () {

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

}

Если вы хотите использовать свои собственные жестко закодированные сеттеры / геттеры, вы можете переопределить магические геттеры / сеттеры. См .: http://www.doctrine -project.org / документация / руководство / 1_2 / ru / введение в модели Пример:

класс Пользователь расширяет BaseUser {

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

}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...