php projekt übersicht - progamm?

Ich werd das Projekt mal passiv mitverfolgen und vielleicht ab und zu mal meine Ideen einbringen, wenn ich's für nötig halte :) Zu mehr hab ich leider keine Zeit...

//edit:
Okok, ich konnt's nicht lassen...
Hier schon mal ein kleiner Anfang...
PHP:
<?
// helper function
function get_next_token_by_type($tokens, $i, $type)
{
	do {
		$i++;
	} while ($tokens[$i][0] != $type);
	return $tokens[$i][1];
}

function parse_file($file, $depth=1) {
	$root = ".";
	$source = join('', file($root."/".$file));
	if (!$source) return;
	$tokens = token_get_all($source);
	$includes = array(); $functions = array(); $classes = array();
	$blocks = 0;
	foreach ($tokens as $i => $t) {
		if (is_array($t)) {
			// recognized token
			if ($t[0] == T_REQUIRE || $t[0] == T_INCLUDE) {
				// require or include => find the file to be included
				$include = get_next_token_by_type($tokens, $i, T_CONSTANT_ENCAPSED_STRING);
				$includes[] = substr($include, 1, -1);
			} elseif ($t[0] == T_FUNCTION && !$blocks) {
				// global function => find the name
				$function = get_next_token_by_type($tokens, $i, T_STRING);
				$functions[] = $function;
			} elseif ($t[0] == T_CLASS) {
				$class = get_next_token_by_type($tokens, $i, T_STRING);
				$classes[] = $class;
			}
		} else {
			if ($t == "{") {
				$blocks++;
			}
			if ($t == "}") {
				$blocks--;
			}
			// everything else
		}
	}
	$return['Filename'] = $file;
	if (count($functions)) $return['Functions'] = $functions;
	if (count($classes)) $return['Classes'] = $classes;
	if ($depth<=1) return $return;
	if (!count($includes)) return $return;
	$includes = array_unique($includes);
	$return['Includes'] = array();
	foreach ($includes as $inc) {
		$return['Includes'][] = parse_file($inc, $depth-1);
	}
	return $return;
}


function print_tree($fi, $prefix=" ")
{
	$i=0;
	foreach ($fi as $title => $info) {
		$i++;
		echo $prefix;
		if ($i==count($fi)) {
			$prefix[strlen($prefix)-1] = " ";
		}
		if (is_array($info)) {
			echo "+ <b><u>".$title."</u></b>:\n";
			print_tree($info, $prefix."  |");
		} else {
			echo "- <b>".$title."</b>: ".$info."\n";
		}
	}
}

$file_info = parse_file("index.php", 5);
echo "<pre>";
print_tree($file_info);
echo "</pre>";
?>
Aufruf:

array parse_file ( string file [, int depth] )
Gibt ein Array mit Informationen über ein eine PHP-Datei file und deren Abhängigkeiten zurück. Dabei wird maximal die Rekursionstiefe depth (Standardwert: 1) erreicht.

void print_tree ( array file_info [, string prefix] )
Gibt ein von parse_file erzeugtes Array formatiert aus.


Sollte für den Anfang schon mal ausreichen. Scheut euch nicht, das ganze zu erweitern :)
 
Zuletzt bearbeitet:
hmmm du pflückst ja das ganze php script auseinander ...

zwei fragen dazu:
sollten wir uns auf eine experinelle function ein lassen
und was ist mit html code ?

ps ich habe auch mal begonnen - eine grundfunktion habe ich schon gebastelt
mal sehen wie ich die online bekomme :-)
 
Also ich hab kein Problem mit experimentellen Funktionen, ich weiß ja nicht wie das bei euch ist :-)
Und wenn es schon eine passende Funktion gibt, wozu dann selbst einen Parser schreiben?

Aber wie meinst du das mit dem HTML-Code? Wenn du damit das verfolgen von Links meinst, wird das ziemlich problematisch... bei größeren Projekten, die ein solches Tool benötigen damit man den Überblick behält, werden sowieso meist Templates verwendet. Und dann kommt man sowieso nicht so einfach an den HTML-Code ran.
 
ich bin grade am grübeln ...

die function ein php script zu durchforsten steht (zumindes basic :-) )

die function

$erg = file_scan("wasauchimmer.php");

gibt mir ein array $erg back mit allen filenamen die das script aufruft ..
nur wie weiter ?
vor der ausgabe muss ich ja weiter forsten

ich dachte da an ein multi-dimonsonales array um die ausgabe vorzubereiten

ach dem motto $erg[0] hat wieder ein array
und $erg[0][0] auch mit zweien geht es ja gut (schon öfter gemacht) aber hat einer erfahrung mit zb
$erg[0][0][0][0][0][0] :-)

geht das noch gut ?
 
Zuletzt bearbeitet:

ich würde mal sagen betaversion steht :-)

ich stocke gerade bei den variablen...

wenn zb. sowas im text steht:

<a href="dahin.php?blubb=<? echo $wert; ?>">link</a>

kann ich das noch nicht auswerten und mir fehlt noch ne zündene idee :-(
 
Ich wollte eigentlich mithelfen, aber alle Ideen die ich hatte, hatte melmager dann schon vor mir oder anders gelöst... Bin dann bei der grafischen Gestaltung "hängen" grblieben... allerdings leider ohne brauchbare Ergebnisse :(
 
@crono
im moment habe ich ja ne tabellenausgabe
in grafischen bereich bin ich eine niete :-(
ich wüsste noch nicht mal wie man senkrechte striche zieht .....
 
Zurück