Hook 사용시 주의사항 (2) - 메소드 사용 정보
Hook 사용시 주의사항 (2) - 메소드 사용본문
class TestObj { // 이벤트 핸들러 등록 public function register() { add_event('test_event', [$this, 'test']); } // 이벤트 핸들러 메소드 public function test() { die('test event fired'); } } // 객체 생성 및 이벤트 핸들러 등록 $obj = new TestObj(); $obj->register(); // 이벤트 퐈이어 run_event('test_event');
==========
위의 코드처럼 사용자 클래스를 정의하고, 이벤트 핸들러를 등록하여 사용하면 될줄 알았는데 안되네요. Hook 라이브러리 git repo 에 있는 메뉴얼을 봐서는 될 것 같은데.. 좀 당황 ^^;;
다음과 같이 사용하실 수 있습니다.
class TestObj { // 이벤트 핸들러 메소드 public function test() { die('test event fired'); } } // 이벤트 등록 add_event('test_event', ['TestObj', 'test']); // 이벤트 퐈이어 run_event('test_event');
==========
또는.. 인스턴스를 생성하고 추가적인 작업이 필요한 경우에는 싱글톤을 사용하시면 됩니다.
class TestObj { // 싱글톤 인스턴스 private static $instance = null; // 인스턴스 접근 메소드 public static function getInstance() { if(!self::$instance) { self::$instance = new TestObj(); } return self::$instance; } // 프라이빗 생성자 (중복 생성 방지) private function __construct() { } // 이벤트 핸들러 public function test() { die('test event fired'); } } $instance = TestObj::getInstance(); // .. do something with $instance add_event('test_event', [$instance, 'test']); run_event('test_event');
추천
2
2
댓글 2개
냑보드로 너무 복잡한거 만드시는거 아닙니다 -_-;;;
(이해가 1도 안가지만 -_- 뭔가 복잡한거 만드시는거 같네요)
(이해가 1도 안가지만 -_- 뭔가 복잡한거 만드시는거 같네요)
@Rido 아.. 뭐 만드는거 아니고.. 걍 테스트요;; 워프 훅 에서는 다 되는데.. 이 라이브러리는 좀 제한적이네요