¿Cómo puedo saber en qué archivo y línea se definió una función determinada?
109
También puede hacer esto en PHP mismo:
$reflFunc = new ReflectionFunction('function_name');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
$reflFunc->isInternal() === TRUE
significa que -> getFileName () y -> getStartLine () devolverán FALSE.$reflFunc = new ReflectionMethod($this, 'method_name');
O use un IDE que permita hacerlo (recomendaría Eclipse PDT), o siempre puede grep si está en Linux, o usando wingrep. En Linux sería algo como:
desde la carpeta raíz del proyecto.
fuente
Si usa un IDE como Netbeans, puede CTRL + clic en el uso de la función y lo llevará a donde está definido, asumiendo que el archivo está dentro de la carpeta del proyecto que definió.
Sin embargo, no hay ningún código o función para hacer esto.
fuente
Supongo que por "descrito" te refieres a "definido". Para esto, idealmente necesita un IDE decente que pueda hacerlo.
fuente
Aquí hay una función básica que escaneará todos los archivos de su proyecto en busca de una cadena específica y le dirá en qué archivo se encuentra y en qué posición de caracteres comienza usando solo php básico. Espero que esto ayude a alguien...
fuente
otra forma de verificar dónde está definida la función, intente redefinir la función, el sistema de errores de PHP simplemente devolverá un error que le indica dónde está la función definida previamente
fuente
Me gusta la solución de Tom, así que pensé que podría compartir un poco más de trucos con ReflectionFunction (debería funcionar en todos los PHP 5):
una sola línea para imprimir el nombre del archivo:
Tenga en cuenta que no le mostrará la ubicación de las funciones internas (como _ ), pero aún puede imprimir la API como se muestra a continuación.
para imprimir la definición y los parámetros de la función:
Ejemplo:
fuente
Necesitará un IDE que admita la funcionalidad de "Declaración de función abierta". Una buena opción para php es Eclipse PDT.
Para buscar la definición de la función, resalte el nombre de la función, mantenga presionada la tecla CTRL + Clic en el nombre.
fuente