Cómo hacer que xdebug var_dump muestre el objeto/matriz completa

Resuelto dm03514 asked hace 54 años • 7 respuestas

Estoy usando xdebug (php_xdebug-2.1.2-5.3-vc9.dll) en WAMP . Cuando lo uso var_dumpen un objeto o variable grande, no muestra la variable completa.

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

Sin xdebug se muestra como se esperaba. Miré la documentación pero no vi una solución. ¿Alguien sabe cómo puedo solucionar este problema para que xdebug var_dumpmuestre el objeto completo ?

dm03514 avatar Jan 01 '70 08:01 dm03514
Aceptado

Estas son variables configurables en 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 

Por supuesto, estos también se pueden configurar en tiempo de ejecución a través de ini_set(), lo cual es útil si no desea modificar php.ini y reiniciar su servidor web pero necesita inspeccionar rápidamente algo más profundamente.

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

La configuración de Xdebug se explica en la documentación oficial .

Michael Berkowski avatar Apr 03 '2012 17:04 Michael Berkowski

Sé que esta es una publicación muy antigua, pero pensé que aún podría ser útil.

Si se siente cómodo leyendo el formato json, puede reemplazar su var_dump con:

return json_encode($myvar);

He estado usando esto para ayudar a solucionar problemas de un servicio que he estado creando y que tiene algunas matrices profundamente anidadas. Esto devolverá todos los niveles de su matriz sin truncar nada ni requerir que cambie su archivo php.ini.

Además, debido a que los datos json_encoded son una cadena, significa que puede escribirlos fácilmente en el registro de errores.

error_log(json_encode($myvar));

Probablemente no sea la mejor opción para cada situación, ¡pero es una opción!

Chris Schmitz avatar May 09 '2014 21:05 Chris Schmitz

O puedes usar una alternativa:

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

Funciona sin configuración y de todos modos tiene muchas más funciones que var_dump de Xdebug. Para evitar el límite anidado sobre la marcha con Sage, simplemente use

 +d( $variable ); // append `+` to the dump call
raveren avatar Sep 10 '2013 10:09 raveren