IT

xdebug var_dump를 가져 와서 전체 객체 / 배열을 표시하는 방법

lottoking 2020. 3. 18. 23:17
반응형

xdebug var_dump를 가져 와서 전체 객체 / 배열을 표시하는 방법


내가 사용하고 Xdebug는 에 (php_xdebug-2.1.2-5.3-vc9.dll를) WAMP . var_dump큰 객체 또는 변수를 사용 하면 전체 변수가 표시되지 않습니다.

array
'node' => 
  array
    'my_form' => 
      array
        'form' => 
          array
            ...

xdebug가 없으면 예상대로 표시됩니다. 설명서를 보았지만 해결책을 찾지 못했습니다. xdebug var_dump전체 객체를 표시 하도록이 문제를 해결하는 방법을 아는 사람이 있습니까?


다음은 php.ini에서 구성 가능한 변수입니다.

; with sane limits
xdebug.var_display_max_depth = 10
xdebug.var_display_max_children = 256
xdebug.var_display_max_data = 1024 


; with no limits
; (maximum nesting is 1023)
xdebug.var_display_max_depth = -1 
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1 

물론 이것들은 ini_set()php.ini를 수정하지 않고 웹 서버를 다시 시작하고 싶지만 좀 더 깊이 검사해야 할 경우에 유용합니다.

ini_set('xdebug.var_display_max_depth', '10');
ini_set('xdebug.var_display_max_children', '256');
ini_set('xdebug.var_display_max_data', '1024');

Xdebug 설정은 공식 문서에 설명되어 있습니다 .


나는 이것이 매우 오래된 게시물이라는 것을 알고 있지만 이것이 여전히 도움이 될 것이라고 생각했습니다.

json 형식을 읽는 데 익숙하다면 var_dump를 다음으로 바꿀 수 있습니다.

return json_encode($myvar);

나는 이것을 사용하여 깊게 중첩 된 배열이있는 건물의 서비스 문제를 해결하는 데 도움을주었습니다. 이것은 아무것도 자르거나 php.ini 파일을 변경하지 않고도 배열의 모든 레벨을 반환합니다.

또한 json_encoded 데이터는 문자열이므로 오류 로그에 쉽게 쓸 수 있습니다.

error_log(json_encode($myvar));

모든 상황에 가장 적합한 선택은 아니지만 선택입니다!


또는 대안을 사용할 수 있습니다.

https://github.com/kint-php/kint

그것은 제로 설정으로 작동하며 Xdebug의 var_dump보다 훨씬 많은 기능을 가지고 있습니다. Kint를 사용하여 중첩 된 제한을 무시하려면 다음을 사용하십시오.

 +d( $variable ); // append `+` to the dump call

나는 이것이 늦었다는 것을 알고 있지만 약간 쓸모가 있습니다.

echo "<pre>";
print_r($array);
echo "</pre>";

체크 아웃 Xdebbug의 위해서 var_dump 설정 이 설정 특히 값 :

xdebug.var_display_max_children
xdebug.var_display_max_data
xdebug.var_display_max_depth

추천하고 싶습니다 var_export($array)-유형을 표시하지 않지만 코드에서 사용할 수있는 구문을 생성합니다. :)

참고 URL : https://stackoverflow.com/questions/9998490/how-to-get-xdebug-var-dump-to-show-full-object-array

반응형