[ACTUALIZACIÓN: Esta respuesta no se ocupa de los espacios de nombres, por lo que es básicamente obsoleto. Lo dejo aquí por si alguien encuentra el enfoque DOT interesante.]
Aquí está una manera sencilla para representar gráficamente la herencia de clases en PHP.
Grep para definiciones de clases y luego transforma la salida grep en sintaxis DOT. NOTA: Este proceso REQUERIRá prueba y error en su situación. Ejecute grep por separado y modifíquelo para mostrar las líneas correctas de definición de clase antes de colocarlo en el script.
Este script era para PHP en standard * nix (yo usaba Ubuntu), con graphviz instalado, y usando grep -v para excluir algunos directorios que no me interesaban porque estaba buscando una base de código de CakePHP. Fdp funcionó mejor que sfdp, dot, circo o neato en esta situación.
Crear generateClassHierarchy.sh
#!/bin/bash
echo 'digraph code {' > code.dot;
grep -r "^class " * | grep -v "^app/vendors" | grep -v "^cake/" | grep -v "Binary file" | sed 's/.*://' | sed 's/class/ /' | sed 's/ extends/-> /' | sed 's/ implements .*//' | sed 's/ \?{.*$//' | sort >> code.dot
echo '}' >> code.dot;
fdp -Tpng -ocode.fdp.png code.dot 2> /dev/null # Ignore syntax error
echo "OK";
A continuación, sólo:
cd /var/www/my_app/ # or wherever
bash ~/shell/generateClassHierarchy.sh # or wherever
eog code.fdp.png
Reemplazar EOG con su visor de imágenes preferido. He ejecutado esto en Zend Framework como una prueba y produje un gráfico PNG de 22 megabytes. Ejecutarlo en solo Zend_Db muestra esto (ejemplo es en mi sitio):
http://chapman.id.au/generate-php-class-inheritance-diagrams-in-graphviz
Creo que hay algo fundamentalmente equivocado en el diseño de software de blogs que se requiere tener un visualizador de código PHP para entender su temas. –
http://www.nwiresoftware.com/ me viene a la mente. Pero es comercial. – Gordon
@John en realidad no, pero cuando recién comienzas puede ser difícil separarte del enredo. He deseado algo como esto en algunos proyectos, pero luego memoricé sus estructuras yo mismo. –