Sven Rautenberg: Einfachster Weg alle Funktionen eines Projektes zu erhalten

Beitrag lesen

Moin!

Du kannst Dir ein Script schreiben, das alle PHP-Dateien in einen String einliest um ihn dann mittels preg_match_all() und einem passenden Suchmuster zu durchsuchen.

Das ist aber bei PHP-Quelltext nicht sehr schön. Vor allem, wenn der Quelltext in tausendundeiner Variante durch verschiedene Programmierer realisiert wurde.

PHP bietet einen netten Tokenizer, der sich für solche Zwecke 1a anwenden lässt. Man erhält da ein Array mit allen PHP-Token, die erkannt wurden, und insbesondere die Keywords wie function, class etc. sind schon eindeutig identifizierbar durch Konstanten, wie T_FUNCTION oder T_CLASS.

Die Funktion token_get_all() hat sogar ein nettes Beispiel parat.

Und so ein Array durchzugehen ist viel leichter, als reguläre Ausdrücke anzuwenden. Hab ich selbst schon getan, um alle in einer Datei enthaltenen Klassennamen herauszufinden - war vielleicht 2 Stunden Arbeit, bis es schön war.

- Sven Rautenberg