Hook 사용시 주의사항 (2) - 메소드 사용 > 그누5.4포럼

그누5.4포럼

그누보드 5.4 버전 사용자 포럼 소모임 게시판 입니다.

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개

냑보드로 너무 복잡한거 만드시는거 아닙니다 -_-;;;
(이해가 1도 안가지만 -_- 뭔가 복잡한거 만드시는거 같네요)
아.. 뭐 만드는거 아니고.. 걍 테스트요;; 워프 훅 에서는 다 되는데.. 이 라이브러리는 좀 제한적이네요
전체 28 |RSS
그누5.4포럼 내용 검색

회원로그인

진행중 포인트경매

  1. 참여3 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT