2012-04-14 8 views
1

Ich muss eine Liste von Variablen in meinem Code als Teil meines A-Level-Computing-Kurses dokumentieren und erstellen, aber mein PHP-Skript ist insgesamt über 6.000 Zeilen.Software zum Dokumentieren von Code?

Kennt jemand Software, die eine Liste von Variablen in meinem Code anzeigen wird? Ich fühle mich nicht wirklich, wie durch alle meine Code und gehen Hand Kommissionierung über tausend Variablen :(

Vielen Dank im Voraus.

Antwort

3

PHP tokenizer können Sie das Skript analysieren und verwendet werden könnten, um die Variablen alle definierten herauszupicken/gebrauchte

+1

Danke, Alter! Nach ungefähr einer Stunde Lesen habe ich es endlich geschafft! Es war so einfach wie das Aufrufen einer Funktion \t $ tokens = token_get_all ("filename.php"); dann Looping über das Ergebnis und prüfen, ob es gleich einem T_VARIABLE :) –

2

Je nachdem, wie detailliert Sie sein müssen, Xdebug könnte nützlich sein, hier .

Sie sollten in die Reflection-Klassen auch einen Blick: http://php.net/manual/en/book.reflection.php Reflection Sie den Ausgang Kontrolle über

würde dies ziemlich trivial In Powershell würde mit etwas nach oben Schreiben
3

.

Select-String '\$[\w_]+' foo.php -AllMatches | 
    Select-Object -ExpandProperty Matches | 
    Select-Object -Unique -ExpandProperty Value 

oder kürzer:

sls -a '\$[\w_]+' foo.php|%{$_.Matches}|select -u -exp Value 

entsprechend für Perl anpassen, sed, oder was auch immer Sie verwenden möchten. Die Grundidee wäre die gleiche.

+0

Coole Idee! Natürlich fängt das nur Sachen an, die mit '$' beginnen, oder? Ich frage mich, ob er auch Konstanten benötigt, die mit 'define()' deklariert sind und was nicht. – Brad

+0

Nun, Konstanten sind keine Variablen, zumindest in meinem Verständnis ;-) (obwohl ich mich wundere, warum jemand eine Liste aller Variablen in einem Programm sowieso benötigt). – Joey

+0

Einverstanden, es scheint lächerlich, dass jemand eine solche Liste wollen würde. :-D – Brad

2
$ grep -oh "\$[a-zA-Z_]*" file.php | sort | uniq 

oder

$ grep -R -oh "\$[a-zA-Z_]*" src_dir | sort | uniq 
+0

Wie ich sagte @Joey - Große Antwort, aber ich weiß nicht, wie man diesen Code ausführen :(+1 für Ihre Zeit und Mühe obwohl :) –

Verwandte Themen