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
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.
<?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("<?php", $this->contenido);
$max = count($sincomentarios);
for ($i=1; $i<$max; $i++) {
$sincomentarios[$i] = strstr($sincomentarios[$i], "?>", true);
}
echo "Quitando comentarios <?php ... ?><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();
?>
(http://img802.imageshack.us/img802/3184/unled2xk.jpg)