나는 플러그인 제작에 익숙하지 않고 디버깅하는데 어려움을 겪고 있었다.
나는 많은 메아리를 사용했고 어리 석고 추악합니다.
플러그인을 포함하여 전체 사이트를 실행할 수있는 디버거가있는 IDE 일 수도 있습니다.
나는 플러그인 제작에 익숙하지 않고 디버깅하는데 어려움을 겪고 있었다.
나는 많은 메아리를 사용했고 어리 석고 추악합니다.
플러그인을 포함하여 전체 사이트를 실행할 수있는 디버거가있는 IDE 일 수도 있습니다.
답변:
나는 구식 방식으로 error_log()
ing과 var_dump
ing을 디버깅 합니다. 나는 그것이 가장 효율적인 방법이라는 것을 알았습니다. error_log
배열과 객체를 처리하는 것이 고통 스러울 수 있으므로 여러 유형의 데이터를 처리하는 몇 가지 래퍼 함수가 있습니다 . 또한 print_r()
in에 있지 않으면 in을 사용하는 것이 까다로울 수 있습니다 <pre>
. I는이 tj_log()
오류 로깅 및 tj()
기본적 흉 mannor의 데이터 유형을 표시 출력 (보여주는 :
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 );
또는 무엇이든합니다.
다수의 IDE로 땜질을 한 후에, 나는 매우 커스터마이징 된 Syntax Highlighting 색 구성표를 사용 하여 일반 오래된 메모장 ++에 정착했습니다 .
Shift-Ctrl-X를 누르면 커서가있는 곳에서 다음 코드가 출력되도록 매크로를 설정했습니다.
echo "<pre>";
var_dump($);
echo "</pre>";
exit();
간단하지만 일반적 으로이 매크로와 WP_DEBUG를 사용하여 버그의 90 %를 사냥 할 수 있습니다.
print_r($var, true)
대신에 의해 주어진 출력을 선호합니다 var_dump
.
로그 파일을 만들기 위해 작은 클래스를 작성했으며 ajax 호출을 디버깅 할 때 매우 유용합니다.
http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php
다음과 같은 작업 만하면됩니다.
Debug :: log ( "이것은 디버그 메시지입니다");
해당 줄이 실행되면 메시지가 로그 파일에 추가되고 그 후에 tail 명령을 사용할 수 있습니다 (일부 유닉스 스타일 운영 시스템을 사용하는 경우)
tail -f mylogfile.log
이 함수에 배열이나 객체를 전달할 수 있다면.
주의 당신이 당신의 로그 파일을 저장하고자하는 경로의 라인 (20)을 변경해야
내가 추천 할 수있는 두 가지 IDE가 있으며 광범위하게 사용했습니다 : PhpED (Windows에만 해당) 및 PhpStorm + XDEBUG (Mac, Windows 및 Linux). 저는 Mac에 있으므로 후자를 사용할 수 있습니다.
둘 다 ROCK! 좋은 소식은 PhpStorm이 2010 년 9 월 이전에 49 달러이고 그 후에는 99 달러라는 것입니다. Windows를 사용 중이고 다시 선택해야한다면 어느 것을 선택해야할지 잘 모르겠습니다.
솔직히 말하면,이 두 도구 중 하나를 사용하지 않는 플러그인 개발자는 특히 WordPress 플러그인 개발에 비교적 익숙하지 않은 경우 심각하게 장애가 있다고 생각합니다.
또 다른 좋은 점은 "krumo"php 클래스입니다. ½ 분 안에 구현되며 모든 종류의 변수를 쉽게 디버깅 할 수 있습니다.
또한 백 트레이싱,로드 된 클래스 또는 포함 된 파일 및 요청시 모든 것을 보여줍니다.
게다가 무료입니다!
나는 ThemeForest에서 구입할 수있는 LogPress 라는 13 달러 플러그인을 사용하며 절대적으로 신이 보낸 것입니다. 플러그인 및 사이트와 관련된 모든 것을 디버깅 할 수 있습니다. Firebug 콘솔 로깅 및 그 이상을 지원합니다. 나는 그것 없이는 살 수 없다, 그것은 내가이 플러그인을 얼마나 사용하는지입니다.
이 플러그인은 아마도 내가 지출 한 최고의 돈일 것이며 Wordpress 플러그인 개발에서 많은 시간을 절약했습니다.
먼저 define('WP_DEBUG', false);
wp-config.php 파일 (대부분의 사람들이 말했듯이)을 관련 프로덕션 사이트 (파일 및 데이터 모두)의 최신 사본 인 로컬 설치에 추가합니다. 이렇게하면 물건을 빠르고 안전하고 개별적으로 만들 수 있지만 플러그인이 실제로 사용될 곳을 하나 이상 잘 반영합니다.
또한 플러그인 에 따라 디버그 바 플러그인 (예 : 과도기)과 함께 디버그 바 플러그인을 추가합니다 .
또한 Firefox 용 Firebug 애드온을 사용하여 HTML, CSS 및 JavaScript 문제를 추적하는 데 도움이되고 레이아웃 이상을 조사하는 데에도 도움이됩니다.
나는 직장과 가정에서 15 년 이상 동안 코딩 (php에서 SQL까지)에 사용 된 UltraEdit을 사용하여 코딩하므로 이것은 나에게 잘 작동하지만 IDE로 평가할만큼 충분하지 않을 수도 있습니다. 많은 사람들. 구문 강조, 자동 완성 및 코드 레이아웃 기능과 오타와 같은 것을 피할 수있는 html 및 CSS 단축키 도구가 있습니다. 대부분이 저에게 친숙 함을 가져다 주는데, 이는 새로운 것에 대한 서두에서 종종 간과되는 중요한 측면입니다. 근육 기억은 코딩에서도 반복성을 도와줍니다.
물론 나는 보통 적절한 예의 다른 탭에서 열린 코덱의 적절한 페이지를 가지고 있습니다.
이것들은 모두 코딩, 파싱, 기능 및 레이아웃 오류를 강조하는 다른 방법으로 도움이되며 코딩 방법이나 아무것도 누락되지 않은 경우에 많은 영향을 미치지 않습니다. 나중에 다시 방문 할 무언가를 실험하거나 작업하는 경우 대부분 무시하거나 비활성화 할 수 있습니다.
아, 그리고 키에 무언가를 확인하는 잘 배치 된 echo 또는 print_r에는 아무런 문제가 없습니다 (완료되면 제거하면).
워드 프레스의 종합적인 디버깅 (PHP 오류 / 알림 / 엄격 / 경고, 데이터베이스 쿼리, 경로, 상수, HTTP 요청, 과도, 세션 변수, var 덤프)에 대해 Query Monitor Extend 와 결합 된 Query Monitor를 확인하십시오 .
PHPStorm과 Xdebug는 WordPress 개발을위한 게임입니다. 지금 적극 권장합니다. 특히 인라인 디버그 도구를 사용합니다.
WP_DEBUG
John이 권장하는 것처럼 false로 설정 하면 스크립트 내에서 무엇이 잘못되었는지에 대한 좋은 아이디어를 얻습니다. 그런 다음 Dreamweaver에서 편집하고 브라우저에서 Ctrl + S를 누른 다음 F5를 눌러 변경 사항을 즉시 볼 수 있습니다.