트리거 (Trigger)

조회 수 720 추천 수 0 2010.07.12 19:09:18
SMaker *.22.160.34

XE에서 사용되는 트리거에 대해서 설명한 문서입니다.

트리거란?

XE에서는 모듈의 실행 도중에 동작 제어가 필요한 경우 트리거(Trigger) 라는 기능을 사용합니다.

트리거를 이용하여 모듈을 수정하지 않고 새로운 모듈로 만들어 동작 제어 및 기능 추가 등을 할 수 있습니다.

예) 글 작성 시 설정된 포인트 지급

트리거의 호출

ModuleHandler::triggerCall('트리거 이름', '호출 시점(Called Position) ', 트리거의 매개변수로 사용될 객체);

트리거 목록

moduleHandler.init

Called Position : after

매게변수 : $this->module_info (모듈 정보)

모듈을 초기화한 후 호출하게 되는 트리거입니다.

moduleHandler.proc

Called Position : after

매게변수 : $oModule (모듈 객체)

모듈을 실행한 후 호출하게 되는 트리거입니다.

display

Called Position : before

매게변수 : $output (출력 결과물)

레이아웃이 씌워지기 전에 호출하게 되는 트리거입니다.

Called Position : after

매게변수 : $content (출력 결과물)

모든 출력 결과물이 완성된 후 호출하게 되는 트리거입니다.

document.insertDocument

Called Position : before

메게변수 : $obj (넘어온 문서 정보)

문서를 등록하기 전에 호출하게 되는 트리거입니다.

Called Position : after

메게변수 : $obj (문서 등록 후의 최종적인 문서 정보)

문서를 등록한 후에 호출하게 되는 트리거입니다.

document.updateDocument

Called Position : before

메게변수 : $obj (수정하게 될 문서 정보)

문서를 수정하기 전에 호출하게 되는 트리거입니다.

Called Position : after

메게변수 : $obj (문서 수정 후의 최종적인 문서 정보)

문서를 수정한 후에 호출하게 되는 트리거입니다.

트리거의 등록

// Module Controller 인스턴스 생성
$oModuleController = &getController('module');

// 트리거 등록
$oModuleController->insertTrigger('트리거 이름', '모듈 이름', '호출할 메소드가 속한 인스턴스의 종류', '호출할 메소드(Called Method)', '호출 시점 (Called Position)');

호출할 메소드가 속한 인스턴스의 종류 - View, Model, Controller 등

트리거의 삭제

/ Module Controller 인스턴스 생성
$oModuleController = &getController('module');

// 트리거 삭제
$oModuleController->deleteTrigger('트리거 이름', '모듈 이름', '호출할 메소드가 속한 인스턴스의 종류', '호출할 메소드(Called Method)'+ '+ ', '호출 시점 (Called Position)');

트리거의 삭제 방법은 트리거의 등록과 동일합니다.

엮인글 :
공헌자 :
SMaker