Una de las cosas que más me gusta de Java es que cuando se produce una excepción, el error que te muestra te saca una traza de toda la ejecución de procesos (qué función falla, en qué lÃnea y qué funciones se han llamado hasta llegar a ese punto). En PHP a veces los errores son algo simples, falla tal cosa en tal lÃnea.
Afortunadamente podemos mejorar los mensajes de debug para poder mostrar la misma información: lÃnea del archivo, fichero y qué funciones han sido las que han llamado a la actual (backtrace).
Para poder realizarlo se ha de usar las variables __FILE__ y __LINE__ y la función debug_backtrace(). El código necesario serÃa el siguiente:
function debug($msg, $label = 'DEBUG', $stealth = FALSE) {
if (defined('DEBUG') && DEBUG) {
if (is_bool($msg)) {
$msg = $msg ? 'TRUE' : 'FALSE';
}
$display = $stealth ? ' style="display: none;"' : '';
$backtrace = debug_backtrace();
$debug = array();
$stack = (isset($backtrace[1]['class']) ? "{$backtrace[1]['class']}::" : '')
. (isset($backtrace[1]['function']) ? "{$backtrace[1]['function']}" : '');
if ($stack) {
$debug[] = $stack;
}
$debug[] = "Line {$backtrace[0]['line']} of {$backtrace[0]['file']}";
$debug = implode('
', $debug);
print "{$label}: {$debug}:
".print_r($msg, 1)."
\nâ€;
}
}
Programming Tips #9 “debug_backtrace”
Hola, excelente Web, útil y con muchos recursos.
No se si es mucho pedir si me puedes ayudar con lo siguiente: para formar un PDF, ¿cómo hacerlo extrayendo la data, es decir, texto y la imagen de un artÃculo, que están almacenados en la base de datos MySQL?
Lo he intentado con la clase class.pdf2text.php, pero no me resulta. Un ejemplo de cómo se hace, me ayudará mucho.
Gracias, bye
Hola Rikochett, lo que tu necesitas es esta librerÃa:
http://www.fpdf.org/
Saludos