Zend 프레임 워크 및 교리 (Getters and Setters)
-
20-09-2019 - |
문제
다음과 같은 기존 엔티티 모델에서 교리를 사용할 수 있습니까?
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.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);
}
자신만의 사용자 정의 하드 코드 세트/getter를 사용하려면 Magic Getters/Setters를 무시할 수 있습니다. 보다: http://www.doctrine-project.org/documentation/manual/1_2/en/introduction-to-models예시:
클래스 사용자 확장 baseuser {
public function setPassword($password) { return $this->_set('password', md5($password)); }
}
마지막 언급/질문 : Magic Setter/Getter 메소드를 사용하는 것은 좋은 방법입니다. 어떤 방식으로 데이터를 조작 해야하는 경우에만 사용자 정의 방법 만 사용해야합니다.
제휴하지 않습니다 StackOverflow