existe uma maneira de descobrir de onde uma função em PHP foi chamada? exemplo:
function epic()
{
fail();
}
function fail()
{
//at this point, how do i know, that epic() has called this function?
}
php
function-calls
pol_b
fonte
fonte
debug_backtrace()
que função excelente. Eu estarei usando este!Use
debug_backtrace()
:fonte
debug_backtrace()
é uma chamada cara. Não adquira o hábito de usá-lo para determinar cadeias de chamadas. Se você quiser "proteger" essas funções, verifique OOP e métodos protegidos.A solução mais rápida e simples que encontrei
Testo a velocidade no laptop Lenovo: CPU Intel Pentiom N3530 2,16 GHz, RAM 8 GB
Resultados:
fonte
Então, se você REALMENTE não sabe como, aqui está a solução:
fonte
Use a função debug_backtrace: http://php.net/manual/en/function.debug-backtrace.php
fonte
Experimente o código abaixo.
fonte
Se quiser rastrear a origem exata da chamada no topo da pilha, você pode usar o seguinte código:
Isso irá ignorar as funções encadeadas e obter apenas as informações de chamada mais relevantes (relevante é usado livremente, pois depende do que você está tentando realizar).
fonte
Espero que ajude alguém. Se a função real estiver fora de httpdocs, ela não pode ser encontrada porque o servidor será configurado para não permiti-la. Testei apenas uma pasta de profundidade também, mas a metodologia recursiva deve funcionar em teoria.
É como a versão 0.1, mas não pretendo continuar o desenvolvimento dela, então se alguém atualizar, sinta-se à vontade para publicá-la novamente.
fonte
function ff() { grep "function $1" $(find ./ -name "*.php") }
e chameff fail
ouff epic
. consulte: github.com/MaerF0x0/VimSetup/blob/master/bashrc#L122