Me gustaría depurar un código PHP, pero creo que imprimir un registro en la pantalla o archivo está bien para mí.
¿Cómo debo imprimir un registro en el código PHP?
Lo habitual print
/ printf
parece ir a la salida HTML, no a la consola.
Tengo un servidor Apache ejecutando el código PHP.
printf
pregunta obtendría tantos votos positivos ...Respuestas:
Un truco menos conocido es que mod_php asigna stderr al registro de Apache. Y, hay una secuencia para eso, por
file_put_contents('php://stderr', print_r($foo, TRUE))
lo que volcará muy bien el valor de$foo
en el registro de errores de Apache.fuente
var_export($foo, true)
lugar deprint_r($foo, true)
siprint_r
no le proporciona la información de tipo que necesita.podría ser útil
fuente
Puede usar error_log para enviar a sus servidores el archivo de registro de errores (u otro archivo opcional si lo desea)
fuente
Si estás en Linux:
o
y luego en la consola
Esto mostrará continuamente la última línea puesta en el archivo.
fuente
Necesitas cambiar tu estado de ánimo. Estás escribiendo PHP, no cualquier otra cosa que estés acostumbrado a escribir. La depuración en PHP no se realiza en un entorno de consola.
En PHP, tiene 3 categorías de soluciones de depuración:
Aprenda a usarlos en lugar de tratar de hacer que PHP se comporte como cualquier otro lenguaje al que esté acostumbrado.
fuente
¿Estás depurando en la consola? Hay varias opciones para depurar PHP. La función más común utilizada para la depuración rápida y sucia es var_dump .
Dicho esto y fuera del camino, aunque var_dump es increíble y mucha gente hace todo con eso, hay otras herramientas y técnicas que pueden darle más sabor.
Cosas para ayudar si se depura en una página web, ajuste las
<pre> </pre>
etiquetas alrededor de su declaración de volcado para darle el formato adecuado en matrices y objetos.Es decir:
Y, por último, pero no menos importante, asegúrese de que la depuración de su manejo de errores esté configurada para mostrar errores. Puede ser necesario agregar esto en la parte superior de su script si no puede acceder a la configuración del servidor para hacerlo.
¡Buena suerte!
fuente
Si no desea integrar un marco como Zend , puede usar el método trigger_error para iniciar sesión en el registro de errores de php.
fuente
Simplemente camino es trigger_error:
pero no puede poner matrices u objetos, por lo tanto, use
fuente
También puede escribir en un archivo como este:
Asegúrese de establecer los permisos adecuados para que php pueda acceder y escribir en el archivo (
775
).fuente
Puede usar el módulo php curl para hacer llamadas a http://liveoutput.com/ . Esto funciona muy bien en un entorno corporativo seguro donde existen ciertas restricciones en php.ini que restringen el uso de
file_put_contents
.fuente
Esta es una gran herramienta para depurar y registrar php: PHp Debugger & Logger
Funciona desde el primer momento con solo 3 líneas de código. Puede enviar mensajes a la consola js para la depuración de ajax y puede reemplazar el controlador de errores. También descarga información sobre variables como var_dump () e print_r (), pero en un formato más legible. Muy buena herramienta!
fuente
He usado muchos de estos, pero dado que generalmente necesito depurar cuando desarrollo, y desde que desarrollo en localhost, he seguido los consejos de otros y ahora escribo en la consola de depuración de JavaScript del navegador (ver http: //www.codeforest. net / debugging-php-in-browsers-javascript-console ).
Eso significa que puedo mirar la página web que mi PHP está generando en mi navegador y presionar F12 para mostrar / ocultar rápidamente cualquier rastro de depuración.
Dado que constantemente estoy mirando las herramientas de desarrollador para depurador, diseño CSS, etc., tiene sentido mirar mi loggon PHP allí.
Si alguien nos decide ese código, hice un cambio menor. Después
function debug($name, $var = null, $type = LOG) {
yo añadí
$name = 'PHP: ' . $name;
Esto se debe a que mi servidor PHP genera HTML que contiene JavaScript y me resulta útil distinguir entre la salida de PHP y JS.
(Nota: actualmente estoy actualizando esto para permitirme activar y desactivar diferentes tipos de salida: desde PHP, desde JS y acceso a la base de datos)
fuente
Yo uso cakephp, así que uso:
fuente
Puedes usar:
fuente
Puedes usar
o si desea imprimir esa declaración en un registro, puede usar
fuente