it-swarm-ko.tech

어떻게 플러그인을 디버깅합니까?

나는 플러그인 작성에 꽤 새롭고 디버깅에 어려움을 겪고 있었다.

나는 많은 에코를 사용했고 그것은 엉성하고 추악합니다.

플러그인을 포함하여 전체 사이트를 실행할 수있는 디버거와 함께 IDE이 작업을 수행하는 더 좋은 방법이있을 것이라고 확신합니다.

47
Sruly

Wp-config.php로 가서 define('WP_DEBUG', false);define('WP_DEBUG', true);으로 변경하십시오. 또한 Andrew Nacin의 Deprecated Notices Plugin을 설치하십시오.

21
John P Bloch

오류가 발생하면 x-debug는 PHP에 최신 백 트레이스를 추가하는 훌륭한 PHP 확장 기능입니다.

오류가없는 곳에서 무슨 일이 일어나고 있는지를 알고 싶다면 필자가 가장 선호하는 방법은 출력을 파일에 기록하는 함수를 정의하는 것입니다. 그래서 나는 plog ($ 변수)를 수행하고 로그 파일에 나타납니다. 이는 header ()가 호출되기 전에 발생한 일이나 STDOUT으로 인쇄 할 수없는 다른 상황을 해결하려고 할 때 특히 유용합니다.

12
tomdxw

xdebug + NetBeans IDE를 사용하십시오. 쉽게 구성 할 수있는 완전히 구성한 경우 플러그인에서 중단 점을 설정하고 중단 점에서 변수를 볼 수 있습니다. 그 문제에 대한 플러그인이나 PHP 응용 프로그램을 디버깅하는 가장 좋은 방법이라고 생각합니다.

10
Raj

나는 구식 방식 인 error_log()ing과 var_dumping을 디버깅한다. 그게 나를 위해 가장 효율적인 방법을 찾을, 나는 error_loging 배열 및 개체로 통증이 될 수있는 데이터의 다른 유형을 처리하는 몇 가지 래퍼 함수가 있습니다. 또한 print_r()을 사용하면 <pre>에 없을 때 읽기가 까다로울 수 있습니다. 나는 오류 로깅을 위해 tj_log()을 가지고 있고 출력을 보여주기 위해 tj()을 가지고있다. (이것은 기본적으로 표현 가능한 맨너에서 모든 데이터 유형을 보여준다 :

function tj( $code ) {

    ?>
    <style>
        .tj_debug { Word-wrap: break-Word; white-space: pre; text-align: left; position: relative; background-color: rgba(0, 0, 0, 0.8); font-size: 11px; color: #a1a1a1; margin: 10px; padding: 10px; margin: 0 auto; width: 80%; overflow: auto; -moz-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -webkit-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -moz-border-radius: 5px; -webkit-border-radius: 5px; text-shadow: none; }
    </style>
    <br /><pre class="tj_debug">

    <?php
    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        var_dump( $code );

    else :
        print_r( $code );

    endif;

    echo '</pre><br />';

}

function tj_log( $code ) {

    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        $code = var_export( $code, true );

    else :
        $code = print_r( $code, true );

    endif;

    error_log( $code );

}

그래서 나는 단지 다음을 수행한다 : tj( $current_user ); 또는 무엇이든.

6
Joe Hoyle

나는 로그 파일을 만들기위한 작은 클래스를 작성했다. 이것은 아약스 호출을 디버깅 할 때 매우 유용하다.

http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php

당신은 다음과 같이하면됩니다 :

Debug :: log ( "이것은 디버그 메시지입니다.");

해당 줄이 실행되면 메시지가 로그 파일에 추가되고 그 후에 tail 명령을 사용할 수 있습니다 (일부 유닉스 스타일 운영 체제를 사용하는 경우)

tail -f mylogfile.log

이 함수에 배열이나 객체도 전달할 수 있다면.

note 로그 파일을 저장하려는 경로에 대해 20 행을 변경해야합니다

5
Gnuget

많은 IDE로 땜질 한 후, 필자는 매우 맞춤화 된 Syntax Highlighting 색 구성표로 일반 old Notepad ++ 로 정했다.

Shift 키를 누른 상태에서 Ctrl-X를 누르면 커서가 다음과 같은 코드로 출력됩니다.

echo "<pre>";
var_dump($);
echo "</pre>";
exit();

간단하지만 일반적으로이 매크로와 함께 WP_DEBUG를 활성화하여 버그의 90 %를 사냥 할 수 있습니다.

5
SethMerrick

저는 Linux에서 Aptane IDE를 사용하고 Windows에서는 UltraEdit을 사용합니다.이 패키지에는 PHP 파서도 있습니다. 또한 xDebug의 모든 힌트를 WP_DEBUG에 정의 된 wp-config.php 상수로 봅니다.

이 주제에 게시 도 참조하고 개발 툴에 대해 의견을 말하고 피드백을주십시오.

3
bueltge

그렇게 나쁘지도 않습니다 : Eclipse PhpStorm +에 가깝습니다.

2
kaiser

FirePHP 를 확인하는 것이 좋습니다. HTTP 헤더를 통해 Firefox의 Firebug에 디버그 정보를 보낼 수 있습니다. HTTP 헤더는 대개 더 깨끗한 디버그 출력을 만듭니다.

2
Annika Backstrom

내가 추천 할 수있는 두 가지 IDE가 있으며 광범위하게 사용했습니다 : PhpED (Windows 만 해당) 및 PhpStorm + XDEBUG (Mac, Windows 및 Linux) 그래서 후자 만 사용할 수 있습니다.

둘 다 록! 좋은 소식은 PhpStorm이 2010 년 9 월 이전에 49 달러이고, 그 후 99 달러에 불과하다는 것입니다. 내가 Windows를 사용 중이었고 다시 선택해야한다면 어느 것을 선택할 지 모릅니다.

솔직히 나는이 두 가지 도구 중 하나를 사용하지 않는 플러그인 개발자가 심각하게 장애가 있다고 느낄 수 없습니다. 특히 WordPress 플러그인을 개발하는 데 상대적으로 새로운 경우가 많습니다.

1
MikeSchinkel

Krumo - 스타일있는 PHP 디버그 클래스

또 다른 좋은 점은 "krumo"PHP 클래스입니다. ½ 분 단위로 구현되며 모든 종류의 변수를 디버깅 할 수있는 쉬운 방법을 제공합니다.

  • 사물,
  • 어레이,
  • 문자열/부동/정수/등.

Plus backtracing,로드 된 클래스 또는 포함 된 파일 및 모든 것을 요구시 표시합니다.

플러스 그것은 무료입니다!

다운로드

Krumo @ 소스 포지

1
kaiser

먼저 define('WP_DEBUG', false);을 wp-config.php 파일 (대부분의 사람들이 말했듯이)에 로컬 설치 (관련 파일 및 데이터 모두) 인 최신 로컬 설치에 추가합니다. 이렇게하면 물건을 빠르고 안전하고 개별적으로 만들 수 있지만 플러그인이 실제로 사용될 곳을 하나 이상 잘 반영합니다.

또한 플러그인에 따라 Debug Bar 플러그인과 일부 Debug Bar 애드온 (예 : 과도)을 함께 추가합니다.

또한 Firefox 용 Firebug 애드온을 사용하여 HTML, CSS 및 JavaScript 문제를 추적하는 데 도움이되고 레이아웃 이상을 조사하는 데 탁월합니다.

직장과 가정에서 15 년 이상 코딩 (php에서 SQL까지)에 사용 된 UltraEdit을 사용하여 코딩하므로이 방법은 나에게 효과적이지만 IDE. 구문 강조, 자동 완성 및 코드 레이아웃 기능과 오타와 같은 것을 피할 수있는 html 및 CSS 단축키 도구가 있습니다. 대부분 이것은 Rush에서 종종 간과되는 중요한 측면 인 새로운 것을 친숙하게 만듭니다. 근육 기억은 코딩에서도 반복성을 도와줍니다.

물론 나는 보통 적절한 예의 다른 탭에서 열린 코덱의 적절한 페이지를 가지고 있습니다.

이것들은 모두 코딩, 파싱, 기능 및 레이아웃 오류를 강조하는 다른 방법으로 도움이되며 코딩 방법이나 누락이없는 경우에는 많은 영향을 미치지 않습니다. 나중에 다시 방문 할 무언가를 실험하거나 작업하는 경우 대부분 무시하거나 비활성화 할 수 있습니다.

아, 그리고 키에서 무언가를 확인하는 잘 배치 된 echo 또는 print_r에는 아무런 문제가 없습니다 (완료되면 제거하십시오).

0
Lunc

WordPress의 종합적인 디버깅을 위해 쿼리 모니터쿼리 모니터 확장 을 확인하십시오 (PHP 오류/알림/엄격/경고, 데이터베이스 쿼리, 경로, 상수 , HTTP 요청, 임시, 세션 변수, var 덤프).

또한 게시물에 대한 특정 정보는 All Post MetaSaving What 플러그인을 확인하십시오.

0
Caleb

PHPStorm과 Xdebug는 WordPress 개발을 위해 저를 변화시키는 게임입니다. 지금 추천하십시오. 특별히 인라인 디버그 도구를 사용합니다.

0

나는 phpED와 xdebug를 사용하고 있지만 나를 위해 (그리고 다른 누군가를위한 것 같다) 플러그인이나 테마의 파일을 디버깅하는 것은 불가능하다! 디버거는 주 또는 원래 "코어"파일에있는 중단 점에서만 중지됩니다! 아무도 나를 도울 수 없습니까?

0
Kreker