馃搶 C贸mo obtener un stack trace en PHP sin lanzar una excepci贸n
A veces necesitamos obtener el stack trace de ejecuci贸n en PHP, pero sin tener que lanzar una excepci贸n. Ya sea para debuggear, loguear o simplemente entender c贸mo llegamos a cierta parte del c贸digo, PHP nos da las herramientas para hacerlo de forma nativa y sencilla.
馃攳 Usando debug_backtrace()
La funci贸n debug_backtrace() devuelve un array detallado del stack actual de llamadas. Ac谩 un ejemplo bien simple:
function mostrarTrace(): void {
$trace = debug_backtrace();
foreach ($trace as $item) {
echo "Archivo: {$item['file']} - L铆nea: {$item['line']} - Funci贸n: {$item['function']}" . PHP_EOL;
}
}
function funcionIntermedia(): void {
mostrarTrace();
}
function inicio(): void {
funcionIntermedia();
}
inicio();
Este c贸digo va a imprimir algo como:
Archivo: /ruta/archivo.php - L铆nea: 3 - Funci贸n: mostrarTrace
Archivo: /ruta/archivo.php - L铆nea: 10 - Funci贸n: funcionIntermedia
Archivo: /ruta/archivo.php - L铆nea: 13 - Funci贸n: inicio
Esto imprime directamente el trace en el output, sin necesidad de formatearlo manualmente.