Xpress Engine 디버깅 이용하기

Document URL : http://bnufactory.com/16959
XpressEngine | Posted on February 24th, 2009 at 20:48 by BNU | Modify

Xpress Engine(이하 XE)에서 모듈, 애드온 등을 개발하거나 동작의 확인이 필요 할 때, 자체적으로 약간의 디버깅 환경이 마련되어 있습니다. debugPrint() 함수를 통해 특정 변수 값 등을 출력할 수 있고, 실행시간과 DB쿼리 목록을 볼 수 있습니다.

메시지 출력 방법으로는 (1) 특정 파일에 출력 (2) 페이지 HTML 하단에 주석으로 출력 (3) FireBug 콘솔에 출력하는 방법 세 가지 입니다.

우선 디버깅 메시지를 출력하기 위해 관련 설정 값을 변경해야 합니다. /config/congif.inc.php 이 파일에 관련 상수가 정의되어 있습니다.

__DEBUG__ : 출력 대상 (사용자 호출, 요청/응답 정보, 실행 시간, DB쿼리목록)
__DEBUG_OUTPUT__ : 출력 방법
__DEBUG_PROTECT__ : FirePHP 또는 HTML 주석으로 출력시 보안 설정 여부
__DEBUG_PROTECT_IP__ : 위 값에 따라 출력을 제한하는 IP주소

크게는 이렇게 네 개로 나뉘어 집니다.

각 상수는 파일을 열어보시면 주석으로 설명되어 있으니 그에 맞게 값을 설정하시면 됩니다. 아래는 모든 메시지를 FirePHP를 통해 출력하는 예제입니다. 그리고 127.0.0.1, 즉 로컬에서만 볼 수 있도록 설정되어 있습니다.

define('__DEBUG__', 7);
define('__DEBUG_OUTPUT__', 2);
define('__DEBUG_PROTECT__', 1);
define('__DEBUG_PROTECT_IP__', '127.0.0.1');

 

 __DEBUG__는 비트 값으로 입력하며, 위와 같이 7(1+2+4)인 경우는 XE 1.1.4 ~ 1.2.x를 기준으로 현재 모든 메시지를 대상으로 합니다. 앞서도 말했지만 해당 파일의 주석을 참고해 적절한 값으로 설정할 수 있습니다.

__DEBUG_OUTPUT__ 이 값이 메시지를 출력하는 방법을 정의하는데 이 값이 중요합니다.
0 : /files/_debug_message.php 파일에 내용이 출력됩니다.
1 : HTML 주석으로 페이지 최하단에 표시됩니다.
2 : FireBug 콘솔에 출력합니다.

FireBug 콘솔을 사용하는 경우 파이어폭스 브라우저에서만 메시지를 볼 수 있으며, FireBugFirePHP 플러그인을 설치해야 합니다. 그리고 서버환경이 PHP 5.2 이상을 지원해야 합니다. 만약 PHP 5.2 이하의 경우 __DEBUG_OUTPUT__0으로 설정된 것과 동일하게 파일을 이용해 볼 수 있습니다.

__DEBUG_OUTPUT__에 따라 /files/_debug_message.php 파일을 열어보거나, HTML 소스보기로 확인할 수 있으며, FireBug 콘솔을 통해 메시지를 확인할 수 있습니다. 파일 출력을 이용하는 경우 이 파일의 크기가 커질 수 있으니 XE 관리페이지에서 우측상단의 '설정'페이지에서 '캐시파일 재생성' 버튼으로 이 파일을 삭제할 수 있습니다.

디버그 메시지를 출력하기 위해서는 debugPrint() 함수를 사용합니다. 텍스트 및 변수 값을 확인할 수 있으며, 이 함수가 삽입된 파일 및 줄번호가 같이 표시되어 참조하는데 큰 어려움은 없을 듯 합니다.

Xpress_Engine-FirePHP-debug_message-example.png

 위 이미지는 FirePHP를 활용해 FireBug 콘솔에 출력된 모습입니다. 첫번째 흰색 바탕으로 된 것은 debugPrint()함수를 통해 출력된 메시지 입니다. 텍스트 뿐 아니라 객체나 배열들도 모두 표시되며, 해당 라인에 커서를 두거나 클릭하면 별도의 확대된 창에서 상세히 볼 수 있습니다. 그 밑으로는 요청/응답의 간략한 정보, 각 부분별로 나뉘어진 전체 실행 시간, DB쿼리 목록과 그 실행 시간이 보여지고 있습니다.

파일이나 HTML 주석으로 출력하는 방법도 위와 동일한 항목을 확인할 수 있습니다. 파이어폭스를 사용하신다면 FirePHP를 사용해 보시는걸 권장합니다. (편해요=_=b)

 에~ 뭐 두어가지 상수 값만 설정해주면 되기 때문에 간편하게 간단한 디버깅 환경이 갖춰집니다.

Tagged :
                   

Trackbacks : 1

Trackback URL : http://bnufactory.com/blog/16959/e30/trackback
2009.04.08 at 09:27:01
현재 이 홈페이지의 플랫폼으로 사용하고 있는 XE(XpressEngine, 예전 제로보드XE)는 다양한 기능을 가진 CMS이다. 현재 나와있는 모듈과 애드온, 위젯, 스킨 등을 적절히 조합해서 사용하...

Comments : 0