더 예쁜 / 유익한 Var_dump PHP의 대안?


Answers

Xdebug 확장 기능에서 제공 하는 var_dump 함수가 좋다 : Windows와 Linux 모두에서 쉽게 확장 기능을 설치하고 var_dump 가 더 나은 결과를 얻는다.

  • 더 나은 포매팅
    • HTML
    • 그림 물감
  • 표시 할 정보의 양을 조정할 수있는 옵션이 있습니다.

그리고 빠른 스크린 샷 :


그리고 물론 Xdebug는 원격 디버깅 (예 : Eclipse PDT에서 PHP 응용 프로그램의 그래픽 디버깅) , 프로파일 링 등과 같은 다른 유용한 기능을 제공합니다 .

Question

괜찮은 PHP 프로그래머는 print_r 또는 var_dump 래퍼를 사용하여 단축키를 지정하고 사랑하고 지정 합니다 . 우리가 좋아하는 것을 공유 하지 않으십시오.




여기에 제가 사용하는 인라인인데, 매우 유용합니다 :

$pretty = function($v='',$c="&nbsp;&nbsp;&nbsp;&nbsp;",$in=-1,$k=null)use(&$pretty){$r='';if(in_array(gettype($v),array('object','array'))){$r.=($in!=-1?str_repeat($c,$in):'').(is_null($k)?'':"$k: ").'<br>';foreach($v as $sk=>$vl){$r.=$pretty($vl,$c,$in+1,$sk).'<br>';}}else{$r.=($in!=-1?str_repeat($c,$in):'').(is_null($k)?'':"$k: ").(is_null($v)?'&lt;NULL&gt;':"<strong>$v</strong>");}return$r;};

echo $pretty($some_variable);



나는 방화범 플러스 방화범을 좋아한다.

  • 헤더를 사용하여 로깅 정보를 기록하므로 AJAX가 중단되지 않습니다.
  • 로그하는 변수 / 객체에 대한 아주 멋진 그래픽 표현을 제공합니다.
  • 각 로그 문이 발생하는 곳에 파일 이름과 행 번호를 표시 할 수 있습니다.
  • 프로 시저 또는 객체 지향 API로 프로젝트에서 사용하기 쉽습니다.






여기 내 것이 있습니다 :

public function varToHtml($var='', $key='') {
     $type = gettype($var);
      $result = '';

      if (in_array($type, array('object','array'))) {
        $result .= '
          <table class="debug-table">
            <tr>
              <td class="debug-key-cell"><b>'.$key.'</b><br/>Type: '.$type.'<br/>Length: '.count($var).'</td>
              <td class="debug-value-cell">';

        foreach ($var as $akey => $val) {
          $result .= sbwDebug::varToHtml($val, $akey);
        }
        $result .= '</td></tr></table>';
      } else {
        $result .= '<div class="debug-item"><span class="debug-label">'.$key.' ('.$type.'): </span><span class="debug-value">'.$var.'</span></div>';
      }

      return $result;
    }

스타일 :

table.debug-table {
  padding: 0;
  margin: 0;
  font-family: arial,tahoma,helvetica,sans-serif;
  font-size: 11px;
}

td.debug-key-cell {
  vertical-align: top;
  padding: 3px;
  border: 1px solid #AAAAAA;
}

td.debug-value-cell {
  vertical-align: top;
  padding: 3px;
  border: 1px solid #AAAAAA;
}

div.debug-item {
  border-bottom: 1px dotted #AAAAAA;
}

span.debug-label {
  font-weight: bold;
}









PHP Array Beautifier이 간단한 도구는 print_r () 문과 같은 PHP에서 배열 또는 객체 출력을 가져 와서 데이터를 쉽게 읽을 수 있도록 색상 코드로 형식을 지정합니다. http://phillihp.com/toolz/php-array-beautifier/







내가 선호하는 것은 https://github.com/hazardland/debug.php의 디버그 로, 디버그 라는 이름의 단일 함수 만 포함하는 라이브러리입니다 (프로젝트 또는 라이브러리에서이 함수를 복사 할 수 있습니다) . 일반적인 debug () html 출력은 다음과 같습니다.

그러나 같은 기능을 가진 평범한 텍스트로 데이터를 출력 할 수 있습니다 (4 개의 스페이스 들여 쓰기 탭이 있음). (필요하다면 파일에 기록하십시오) :

string : "Test string"
boolean : true
integer : 17
float : 9.99
array (array)
    bob : "alice"
    1 : 5
    2 : 1.4
object (test2)
    another (test3)
        string1 : "3d level"
        string2 : "123"
        complicated (test4)
            enough : "Level 4"



나는 아무도 가장 쉬운 (아주 예쁜 것은 아니지만) 코드에 대해서는 언급하지 않았다. 읽을 수있는 출력 (색이나 들여 쓰기 없음)을 얻고 싶다면 다음과 같이 var_dump 주위의 간단한 <pre> 작동합니다.

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

이것보다 훨씬 낮은 오버 헤드를 얻을 수 없습니다!