는이 같은 (sfDoctrineRecord :: __() 메서드 호출에 의해 처리되는) 프로퍼티 게터 메소드를 오버라이드 (override)하려고합니다. 그것은 가능하고 어떻게?재정의 교리 마법 접근 방법
1
A
답변
7
다음과 같이하십시오.
0
DoctrineRecord.__call 메서드 내에는 메서드 호출을 시도하는 call_user_func_array
메서드가 사용됩니다.
getProperty
을 재정의 했으므로 하위 클래스 정의를 호출하므로 자체를 호출합니다. 또한,
public function getProperty()
{
$property = $this->_get('property');
//the following line is never reached
return $property;
}
을 사용자 정의 뮤 테이터 및 접근에 대해 읽어 :
관련 문제
- 1. PHP의 마법 방법 질문
- 2. 교리
- 3. Zend Framework findBy 마법 방법?
- 4. 교리 기록은 얼마나해야합니까?
- 5. 젠드 + 교리 2 교리 관리자, 어디 있니?
- 6. mamp가있는 교리?
- 7. 교리 DQL
- 8. 교리 참조?
- 9. 재정의 재정의?
- 10. 마법 부호에 대한 해결 방법 PHP에서 Gpc
- 11. 사용자 지정 마법 파일 데이터베이스를 만드는 방법
- 12. PHP에서 인터페이스 및 마법 메서드 사용 방법
- 13. 이벤트와 재정의 방법 비교
- 14. 재정의 레일 '방법
- 15. 키 누르기 방법 재정의
- 16. 기본 루비 접근 방법?
- 17. 얻기 접근 방법
- 18. SRS 접근 방법
- 19. 루비 모듈 방법 접근
- 20. 는 교리 구조 기능을 사용하는 방법
- 21. 교리 테이블의 번역 된 필드를 얻는 방법
- 22. 교리 2 : 나는 교리 2 문서를 읽고 있었다
- 23. Cat 마법 - 입력 끝
- 24. HTML 기호 마법
- 25. Clojure : 게으른 마법
- 26. PDO와 PDOStatement, 마법 과제
- 27. 새로운 배치의 마법?
- 28. 동적 액세스 마법 상수
- 29. 마법 기록이 삭제됨
- 30. 파생 클래스 재정의 재정의
그래서, 불가능합니까? – Dziamid
'parent :: getProperty()'메쏘드가'__call' 메쏘드를 사용하고 있다면,'getProperty'를 오버라이드하면'parent :: getProperty()'가 자식 메쏘드를 계속해서 호출하게됩니다. 이 작업을 수행하려면 하위 클래스에서 상위 getProperty 메서드의 기능을 복제해야한다고 생각합니다. 그러나, 만약 여러분의 자식 클래스의'getProperty' 메소드가 위에서 보여준 것처럼 간단하다면, 그것을 오버라이드 할 필요가 없습니다. 부모의 버전이 당신이 원하는 것을 할 것입니다. – bejonbee
아니, 아니, 나는 약간의 논리를 적용하려고했다. 의견을 주셔서 감사합니다 직접 _get() 메서드를 호출하여 해결 : $ 속성 = $ this-> _ get ('Property') – Dziamid