programing

xdebug var_dump가 전체 개체/어레이를 표시하도록 하는 방법

shortcode 2022. 9. 6. 22:40
반응형

xdebug var_dump가 전체 개체/어레이를 표시하도록 하는 방법

WAMP에서 xdebug(php_xdebug-2.1.2-5.3-vc9.dll)를 사용하고 있습니다.사용할 때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));

모든 상황에서 최선의 선택은 아닐지 몰라도 선택입니다!

늦은 건 알지만 쓸모가 있을지도 몰라

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

또는 다음 방법을 사용할 수 있습니다.

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

제로 셋업으로 동작하며 Xdebug의 var_dump보다 훨씬 많은 기능을 갖추고 있습니다.Sage와 함께 네스트된 한계를 건너뛰려면

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

Xdebug의 var_dump 설정, 특히 다음 설정 값을 확인합니다.

xdebug.var_display_max_children
xdebug.var_display_max_data
xdebug.var_display_max_depth

추천하고 싶습니다var_export($array)- 타입은 표시되지 않지만 코드에서 사용할 수 있는 구문이 생성됩니다. : )

파일의 var_export가 매우 유용할 수 있습니다.

file_put_contents(__DIR__.'/temp.txt', var_export($var, true), FILE_APPEND);

예를 들어 프로덕션 서버에서 무언가를 디버깅하는 경우입니다.

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

반응형