全文转自: http://www.lfyzjck.com/2010-11-21/382.html
1、php-cpd
功能描述:检测你代码中复制粘贴的部分( Copy/Paste Detector),位代码重构提供一定指导
安装:linux下比较简单,我用的是fedora,只要
yum install php-cpd就可以了,windows用户可以用pear来安装:
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/phpcpd
[lfyzjck@lfyzjck yii]$ phpcpd passport/
phpcpd 1.3.1 by Sebastian Bergmann.
Found 7 exact clones with 217 duplicated lines in 13 files:
- protected/views/admin/_form.php:3-81
protected/views/profile/_form.php:3-81
………
2.40% duplicated lines out of 9033 total lines of code.
2、php-dcd
功能描述:检测代码中的Dead code,(Dead code detector)。dead code是指你代码中被声明确没有被其他代码调用的部分,比如定义了却没有使用过的函数或变量,都属于dead code,这些代码会浪费内存。(据说IE9采用了这种优化,把js中不常用的功能给精简掉,从而提高了评测时的得分)
不过这个工具有很多局限,比如你使用框架就会发现,很多功能框架自带单你没有使用它也会报警,另外通过call_user_func()调用的函数可能也会被报警
安装:和上一个差不多
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/phpdcd-beta
3、php-loc
功能描述:php-loc是一个快速评测代码规模的一个小工具
安装:
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/phploc
以下是对dicuz 7.2的测试结果:
Directories: 50
Files: 519
Lines of Code (LOC): 108169
Cyclomatic Complexity / Lines of Code: 0.20
Comment Lines of Code (CLOC): 3315
Non-Comment Lines of Code (NCLOC): 104854
Namespaces: 0
Interfaces: 0
Classes: 119
Abstract: 0 (0.00%)
Concrete: 119 (100.00%)
Average Class Length (NCLOC): 120
Methods: 988
Scope:
Non-Static: 988 (100.00%)
Static: 0 (0.00%)
Visibility:
Public: 988 (100.00%)
Non-Public: 0 (0.00%)
Average Method Length (NCLOC): 14
Cyclomatic Complexity / Number of Methods: 3.69
Anonymous Functions: 0
Functions: 758
Constants: 447
Global constants: 447
Class constants: 0

浙公网安备 33010602011771号