Cómo localizar rápidamente la ejecución de una función PHP específico en C fuente de PHP?
-
29-09-2019 - |
Pregunta
fuente C de PHP se puede encontrar en http: //svn.php. net / viewvc / php / php-src / trunk / . Si quiero encontrar la implementación de una función PHP específica, cómo localizar rápida en esa fuente SVN?
Solución
El registro de salida el repositorio (o extraer el archivo tar), y greppign para PHP_FUNCTION(functionname)
debería hacerlo.
Por ejemplo:
$ grep -Rn "PHP_FUNCTION(implode)" * ext/standard/php_string.h:40:PHP_FUNCTION(implode); ext/standard/string.c:1131:PHP_FUNCTION(implode)
Línea 1131
de ext/standard/string.c
es donde se define implode
.
O puede usar http://lxr.php.net/ .
Otros consejos
Pedido las fuentes y ejecutar algún tipo de indexador (como etags) en el árbol. Entonces usted debería ser capaz de encontrar una definición bastante rapidez. Esto supone que hay un poco de convención de nomenclatura en su lugar de tal manera que una función PHP incorporado como "do_this" tiene un nombre correspondiente en C como "C_do_this", que se pueden utilizar como una regla de asignación.