• 새로운 소식이 있나요?
  • 이미지
    2023-03-03
    글본문

    사용자 설정 파일 config/config.user.inc.php 를 작성해 놓으면 config/config.inc.php 파일의 설정보다 우선해서 적용되어 디버깅이 가능하다.

    config.user.inc.php 예시

    define('__DEBUG__', 1);
    define('__DEBUG_OUTPUT__', 0);
    define('__DEBUG_PROTECT__', 1);
    define('__DEBUG_PROTECT_IP__', '127.0.0.1');
    define('__DEBUG_DB_OUTPUT__', 0);
    define('__LOG_SLOW_QUERY__', 0);
    define('__OB_GZHANDLER_ENABLE__', 1);
    define('__ENABLE_PHPUNIT_TEST__', 0);

    config.user.inc.php 설정

    __DEBUG__

    기본값은 0 으로, 이것은 디버깅 메시지 출력을 할 것인지, 어떤 것을 할 것인지를 설정하는 지시자이다.

    • 0 : 디버그 메시지를 생성/ 출력하지 않음
    • 1 : debugPrint() 함수를 통한 메시지 출력
    • 2 : 소요시간, Request/Response info 출력
    • 4 : DB 쿼리 내역 출력

    이 지시자의 설정값은 비트 OR 연산으로 값을 설정한다. 예를 들어, 모든 설정을 활성시키고자 한다면 7로 설정하면 된다.

    __DEBUG_OUTPUT__

    기본값은 0 으로, 이것은 디버그 메시지의 출력 방법에 대해 설정하는 지시자이다.

    0 : files/_debug_message.php 에 연결하여 출력 1 : HTML 최하단에 주석으로 출력 (Response Method가 HTML 일 때) 2 : Firebug 콘솔에 출력

    __DEBUG_PROTECT__

    기본값은 1 이고 디버깅 메시지를 특정 IP 주소에서만 보여줄 것인지 모든 아이피에서 볼 수 있게 할 것인지를 설정한다.

    • 0 : 제한 없음 (권장하지 않음)
    • 1 : 지정한 IP 주소에만 허용

    가급적 1 로 설정하는 것이 좋을 것이다. 그렇지 않은 경우 이로 인해 발생할 수도 있는 문제는 심각해질 수도 있다.

    __DEBUG_PROTECT_IP__

    기본값은 127.0.0.1 이고, 이 지시자는 __DEBUG_PROTECT__ 지시자의 값을 1로 설정했을 때 디버그 메시지 출력을 허용할 IP 주소를 설정하는 것이다. 여기에는 자신의 IP 주소를 설정해주면 된다.

    디버깅 메시지 출력

    소스코드에 다음과 같이 debugPrint함수를 추가하면 된다.

    debugPrint("Hi, there!!");
    debugPrint("document_srl is : ".$document_srl);

    추천 디버깅 방법

    FirePHP 등은 속도가 느리므로 사용을 추천하지 않는다. 디버깅 결과를 파일로 저장하도록 __DEBUG_OUTPUT__을 0으로 설정하고 터미널에서 tail -f files/_debug_message.php 명령어를 실행하거나 소스코드에 return new Object(-1, "message"); 를 추가한다. 단, 이 방법은 게시물이나 댓글을 작성하는 시점(Context::get('act')=='procBoardInsertDocument' && $called_position == 'before_module_proc') 등에서는 표시되지 않는다.

    참고자료


    출처

    https://dev.jaedong.kim/debugging-xpressengine/

    사용자 설정 파일 config/config.user.inc.php 를 작성해 놓으면 config/config.inc.php 파일의 설정보다 우선해서 적용되어 디버깅이 가능하다. config.user.inc.php 예시define('__DEBUG__', 1); define('__DEBUG_OUTPUT__', 0); define('__DEBUG_PROTECT__', 1); define('__DEBUG_PROTECT_IP__', '127.0.0.1'); define('__DEBUG_DB_OUTPUT__', 0); define('__LOG_SLOW_QUERY_... 더보기