2010-02-23 12 views
16

Buscando un software que analice el código php (es decir, todos los de wordpress o el tema temático) y muéstrame imágenes bonitas (quizás un block diagram) de todas las conexiones para ayudarme a comprender más rápidamente dónde están las cosas y qué está conectado qué.¿Hay alguna herramienta de visualización de código PHP?

Idealmente, este software se ejecutan en un Mac, pero voy a tomar nada:, Linux, basada en la web de Windows, etc.

+7

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. –

+1

http://www.nwiresoftware.com/ me viene a la mente. Pero es comercial. – Gordon

+0

@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. –

Respuesta

3
  • KCachegrind - Con Xdebug puede perfilar la ejecución de secuencias de comandos, KCachegrind puede generar algo bastante impresionante call graphs de esta
  • nwire para Eclipse
1

BOUML puede hacer diagramas UML de código PHP existente

+1

Software PAGADO :( – sMyles

+0

@Myles La versión anterior era gratis, ¿quizás la encuentras? – powtac

4

[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

+2

buena, gracias. Ajusté las cosas al incluir también clases abstractas. El primer bit se convierte en 'egrep -r"^(clase abstracta | clase) " '. tenga en cuenta que puede encadenar grep y grep -v cosas más para limitar las clases en las que desea operar. – dbu

0

nWire no está actualizado, no soporta las últimas versiones de PHP (espacios de nombres). La versión comunitaria de Visual Paradigm es gratuita para proyectos no comerciales, pero también falla en las últimas versiones de PHP.

phUML es una herramienta gratuita muy útil No se mantiene, pero funciona bien para PHP 5. Los usuarios de Mac también deben instalar graphviz.

0

Con base en las respuestas anteriores, vale la pena hacer esta distinción:

  • diagramas de clases/métodos de su código PHP (análisis de código estático). Esto es lo que estás pidiendo. Una opción más podría ser PHPDependencyAnalysis, es de código abierto.
  • Herramientas de visualización/análisis de datos que tienen bibliotecas gráficas. Una herramienta muy popular es JGraph y los que, como Sisense que tienen conveniente API que se puede acceder con PHP
Cuestiones relacionadas