[완료] PHP5에서의 Interceptor의 활용 용도가 뭐죠?

cool_uk의 이미지

책을 보는중 Interceptor 메서드를 보면서 궁금해서 질문 드립니다.

예를들어 __get() 인터셉터의 경우 아래와 같이 예제 코드를 제시하는데요,

class Person {
		function __get($property) {
			$method = "get{$property}";
 
			if(method_exists($this, $method)) {
				return $this->$method();
			} else {
				return "sorry, there is no method";
			}
		}
 
		function getName() {
			return "Bob";
		}
 
		function getAge() {
			return 44;
		}
	}
 
	$p = new Person();
 
	print $p->name;

코드를 보니 클래스의 메서드를 이런식으로도 인터셉트해서 사용 할 수 있다는 얘기를 하는것 같은데..
해당 코드는 오히려 프로그래머에게 혼란만 가중시키지 않나요?
인터셉트 메서드 들은 에러처리 외에 사용될게 있게 있나 싶은데..
저걸 실제로 사용하시는 분들은 어떤 용도로 사용하시나요?

송효진의 이미지

그냥 예시로써 '그럴 수도 있다' 고만 알면 될 것 같네요.

http://www.php.net/manual/en/language.oop5.magic.php
매직 메소드로 __get(), __set() 은 보통
property get set 필터링 용으로 씁니다.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/

소타의 이미지

객체가 가진 private data 등이 외부에서 참조 시 변환이나 접근 제어를 할 때 쓰입니다.
필요한 기능이라고 생각되는데요? Zend framework 등에서도 종종 쓰입니다.

cool_uk의 이미지


답변감사합니다.

두분 좋은 하루 되세요 :-)