2010-06-04 10 views
7

Je travaille sur une très grande application PHP écrite par quelqu'un d'autre.Outil PHP Callstack

Quelqu'un connaît-il un outil (gratuit ou commercial) qui me permettrait de schématiser quel fichier PHP contient/calls/needs quel autre fichier PHP?

J'ai essayé nWire pour PHP et il ne capture pas précisément mes appels include().

Répondre

2

ne suis pas sûr cet outil, mais de savoir quels fichiers sont inclus, vous pouvez utiliser get_included_files et vous pouvez accéder à des variables définies, des constantes et des fonctions telles que ce

// get vars 
$vars = get_defined_vars(); 
// get constants 
$consts = get_defined_constants(); 
// get functions 
$funcs = get_defined_functions(); 

get_defined_vars
get_defined_constants
get_defined_functions

3

Si je vous ai bien compris et que vous voulez un outil qui montre quels sont les appels que vous avez faits. Ou vouliez-vous dire un outil qui montre quels sont les fichiers nécessaires?

Jetez un oeil à Xdebug je pense qu'il devrait être capable de faire la première chose:

Xdebug stack trace

0

phpDocumentor sera au moins la liste de tous vos cours et les document au format HTML avec des liens dans chaque classe aux classes requises. Vous pouvez également étendre le comportement de phpDoc si vous voulez faire des graphes de dépendance d'une manière particulière. phpDoc est vaguement basé sur javadoc.

0

Essayez Inclued, un package PECL qui étend PHP et signale les inclusions de fichiers et d'autres informations. L'introduction manuelle indique:

Trace et restitue la hiérarchie des inclusions de fichiers et l'héritage des classes au moment de l'exécution. Les fichiers peuvent avoir été inclus en utilisant include(), include_once(), require() ou require_once(). Les dépendances d'héritage de classe sont également signalées.

Consultez également PHP_Depend, un outil de mesure de code pour PHP. Cela ne montre pas exactement les dépendances de fichiers, mais il signale des métriques de complexité de code qui peuvent être utiles lorsque vous maintenez et refactorisez un projet PHP hérité.

0

Si cela ne vous dérange pas UML, Enterprise Architect fait de très bons diagrammes de classes autogénérés. Je l'utilise pour la plupart de mes projets :) C'est un peu cher, mais ça en vaut la peine

http://www.sparxsystems.com/products/ea/index.html