Come individuare rapidamente l'implementazione di una funzione PHP specifica sorgente C di PHP?
-
29-09-2019 - |
Domanda
sorgente C di PHP sono disponibili all'indirizzo http: //svn.php. net / viewvc / php / php-src / trunk / . Se voglio trovare l'implementazione di una funzione PHP specifica, come individuare rapidamente in quella sorgente SVN?
Soluzione
Il check-out del repository (o l'estrazione del tarball), e greppign per PHP_FUNCTION(functionname)
dovrebbe farlo.
Ad esempio:
$ grep -Rn "PHP_FUNCTION(implode)" * ext/standard/php_string.h:40:PHP_FUNCTION(implode); ext/standard/string.c:1131:PHP_FUNCTION(implode)
Linea 1131
di ext/standard/string.c
è dove si definisce implode
.
In alternativa è possibile utilizzare http://lxr.php.net/ .
Altri suggerimenti
Controlla le fonti ed eseguire qualche tipo di indicizzatore (come etags) sull'albero. Poi si dovrebbe essere in grado di trovare una definizione abbastanza rapidamente. Questo presuppone che ci sia qualche convenzione di denominazione in atto in modo tale che una funzione PHP integrato come "do_this" ha un nome corrispondente a C come "C_do_this" che è possibile utilizzare come una regola di mappatura.