[phc-general] Statical code analysis (metrics) with PHC
paul.biggar at gmail.com
Sun Nov 25 17:14:15 GMT 2007
On Nov 25, 2007 3:10 PM, Matthias Kleine <m.kleine at interexa.de> wrote:
> I'd like to ask you which ready-to-use code analysis plugins
> are known for PHC today. There are the count_statements plugins
> in the "standard release", which I found quite useful. But I
> am asking myself the following questions:
> - I want to execute code analysis over a large code base consiting
> of hundrets of php files and lets say about a million lines of
> code. The count statements plugin works on a single file. Is
> there an easy possibility of using the plugin on multiple files
> (exept using some shell/awk stuff like
> find . "*.php" |xargs phc --run=myplugin | awk ... asf.
So far, we havent had a need for this. I think we'll need to process
multiple files at a later date, for generating code from a complete
web app, However, this would probably use a different interface, so I
think working around it at the command line is better for your
problem. One command I use for things like this is:
for i in `find . -name "*.php"`; do echo $i; phc --run=myplugin; done
One alternative would be to have a single file which include()s all
your others, and using the --include flag. A simple way at the command
line would be something like:
find . -name "*.php" | sed 's/(.*)/include (\1)/' | phc --run=plugin
> - Which other plugins are known today for statical code analysis, like
> - number of classes
> - number of methods
> - average number of lines of code per class or method
> - ... ?
These arent too complicated. Plugins to calculate number of classes or
methods would be easy. As for number of lines, unfortunately line
counts are a bit poor at the moment. That said, line count isnt a good
measure of the effort in a method, so perhaps you'd prefer the number
of statements (or even number of expressions?), which is easy.
I believe a good measure of code complexity is called cyclomatic
complexity. I expect this wouldnt be very hard to work out in phc, but
I might be missing something.
> - Are there known any phc based projects related to the issue of
> statical code analysis? Can you link me to some further
> information in case you have some available.
I'm not aware of any, which means there probably arent any.
> By the way, I would also be glad to get some hints for statical
> analysing tools for PHP which might not be based on phc (except the
> Code Analysing feature of Zend Studio, which is more then nothing,
> but not even more then just more ...).
I'm not familiar with any, unfortunately. Googling for "php cyclomatic
complexity" shows a few things, but I cant tell from a quick glance
whether they are any good.
paul.biggar at gmail.com
More information about the phc-general