Descubrir donde se definió una función en php

php-bug3:07 AM y depurando el código de un sitio web de un cliente y salta un error lógico en una línea parecida a esta:


funcion();

el problema es que la lista de includes y requires es infinita y determinar donde se define la función en cuestión es una tarea poco atractiva y consumidora de tiempo, pizza y café, así que vamos a retocar un poco el código para encontrar el archivo y línea donde se define la función en tiempo récord.

La técnica que aplicaremos es crear un objeto del tipo ReflectionFunction que nos devuelve información sobre una función, lo haremos así.

$info = new ReflectionObject( 'funcion' );

Así obtendremos un objeto que contiene una serie de propiedades ( de sólo lectura ) y métodos que nos entregan la información deseada:

Para nuestro debug bastará con desplegar el archivo y línea de esta manera:


echo $info->getFileName(), ' : ', $info->getStartLine();

y ahora a depurar…

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s