No tendrás muchas opciones allí. La otra opción (la cual fue publicada en la otra pregunta) para obligar a la persona que llama a provde es la información con la llamada de función (usando PHP constantes mágicas):
callFunction(1, 2, 3, __FUNCTION__)
callFunction(1, 2, 3, __CLASS__, __METHOD__)
callFunction(1, 2, 3, $this, __METHOD__)
or
$class = new ReflectionClass(__CLASS__);
$method = $class->getMethod(__METHOD__);
callFunction(1, 2, 3, $method) // $method would be a ReflectionMethod obj
habría una alternativa posible. Pero es
- ofuscar su código
- puede ser "manipulados", que podría hacer que el código de
callFunction
a fallar y que sería muy difícil realizar un seguimiento de los errores hacia abajo.
Si estuviera en su lugar, trataría de evitarlo en una función que se utiliza a lo largo de su código. use debug_backtrace
(incluso si puede ser 'lento'). El código legible gana el código rápido.
¿Por qué necesita saber de dónde la función actual ha sido llamado? Como dice la pregunta vinculada, debe reconsiderar su diseño si sus funciones realmente necesitan saber quién los llamó. – Gumbo
tengo una clase de vista y no quiero especificar la ruta completa de la vista ... sino solo el nombre y el resultado para que la vista se ubique en el mismo directorio que la vista que llamó a la clase. –
Parece que está a punto de dispararle el pie. No hagas eso. – troelskn