10

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!

2 Answers 2

11

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 .cachegrindout file corresponding to the execution of a page-load.


After that, you can load that .cachegrindout file with KCacheGrind (On linux -- I don't think there's a windows version) ; KCacheGrind can generate call-graphs from .cachegrindout files.

And here's an example of callgraph you can get :

KCacheGrind : Callgraph exported as an image
(source: pascal-martin.fr)

(Here's, it's been generated from a .cachegrindout file obtained while loading a page of Dotclear, a blogging software)

Sign up to request clarification or add additional context in comments.

1 Comment

Neat!! I could try this at home on my linux VM with a test PHP server. Thanks a bunch!
2

Doxygen can do it statically. Just doxygen -d to create a config file, then edit it to create callgraphs.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.