Happens that I’ve ended up working on a big PHP program and I need a program (or easy to install script) which draws a flow control/call graph of a PHP application (ie; must work over multiple PHP files).
Already saw stuff like Graphviz, not sure which one works for PHP?
Any suggestions?
Cheers!
I have never used any tool that can do that statically (i.e. from source files), but here’s a way to get a callgraph when executing a script/application.
First, you need to install the Xdebug extension — on a development/testing server (don’t install it on a production server : it’s quite bad for performances ^^ )
Then, you can use its profiling features to generate a
.cachegrindoutfile corresponding to the execution of a page-load.After that, you can load that
.cachegrindoutfile with KCacheGrind (On linux — I don’t think there’s a windows version) ; KCacheGrind can generate call-graphs from.cachegrindoutfiles.And here’s an example of callgraph you can get :
(source: pascal-martin.fr)
(Here’s, it’s been generated from a
.cachegrindoutfile obtained while loading a page of Dotclear, a blogging software)