Estructura de datos

Iniciado por EFEX, 26 Junio 2011, 18:13 PM

0 Miembros y 1 Visitante están viendo este tema.

EFEX

Vengo armando un sitio, tiene un toque social, esta armado en php y el còdigo se me, digamos, alargo bastante con 32 archivos .php. Mi idea es simplificar en lo que pueda al codigo fuente y como a pasado tiempo desde la ultima ves que lo edite, puede que me olvide de algunas funciones o clases, entonces me preguntaba si existe un programa, que digamos... tome los archivos php y arme un tipo de estructura de datos con las clases y funciones que excribì.


Saludos
GITHUB 

EFEX

De verdad no existe un programa que tome los archivos .php y me arme un estilo de diagrama, estructura de datos, lo que sea con las clases, funciones, llamadas, etc ?
Asi que improvisè  ;D, de momento armè este, es medio brusco pero funciona para mi codigo, algo me sirve.

Código (php) [Seleccionar]

<?php
class EDD {
private $dir = array('archivo.php''archivo2.php');
private $contenido;
function __construct() {
$cant_archivos count($this->dir);
for ($c 0$c $cant_archivos$c++) {
if (file_exists($this->dir[$c])) {
echo "Se encontro el archivo: ".$this->dir[$c]."<br>";
$this->leer($this->dir[$c]);
}else{
echo "No existe el archivo: ".$this->dir[$c]."<br>";
}
}
}
function leer($archivo) {
echo "Leyendo el archivo...<br>";
$filesize filesize($archivo);
$this->contenido htmlspecialchars(file_get_contents($archivo$filesize), ENT_QUOTES);
$this->objetos();
}
function objetos() {
if ($this->contenido) {
$longitud strlen($this->contenido);
echo "\$this->contenido obtenido, tamaño ".$longitud."<br>";
$sincomentarios explode("&lt;?php"$this->contenido);
$max count($sincomentarios);
for ($i=1$i<$max$i++) {
$sincomentarios[$i] = strstr($sincomentarios[$i], "?&gt;"true);
}
echo "Quitando comentarios &lt;?php ... ?&gt;<br>";

$clases = array();
$classes_encontradas substr_count implode$sincomentarios ), 'class ');
//echo $classes_encontradas;
for ($i 1$i <= $classes_encontradas$i++) {
$clases explode("class ",implode$sincomentarios ));
$clasess[$i] = trim(strstr($clases[$i], "{"true));

echo "Encontrado Class <b>".$clasess[$i]."</b><br>";

$funciones_encontradas substr_count $clases[$i], 'function ');

for ($a 1$a <= $funciones_encontradas$a++) {
//echo $a;
$funciones explode("function ",$clases[$i] );
$nombree trim(strstr($funciones[$a], "{"true));
echo "|___Function <b>".$nombree."</b><br>";
}
}
//echo "<pre>";
//print_r($funciones);
//echo "</pre>";
}else{
echo "No se pudo obtener el \$contenido";
}

}

$showtime = new EDD();

?>





GITHUB