▲点击查看大图
PHP Depend
PHP Depend(http://pdepend.org/)是一个 PHP 中静态代码分析的工具。它可以用来检查你
的
PHP 项目中的代码规模和复杂程度。安装方法如下:
sudo pear channel-discover
pear.pdepend.org
sudo pear install pdepend/PHP_Depend-beta
使用的一个例子如下:
pdepend --jdepend-xml=../jdepend.xml --jdepend-chart=../dependencies.svg --overview-
pyramid=../overview-pyramid.svg
上面会生成一个
XML 文件,两个 SVG 的图形文件。其中 XML 文件说明了项目中各
PHP 文件的互相依赖调用(引用)情况及每个方法、函数,类的代码行,一个例子如下:
<?xml version=”1.0” encoding=”UTF-8”?>
<metrics noc=”3” nof=”0” noi=”0” nom=”6”>
<package name=”+
global
” noc=”17” nof=”0” noi=”0” nom=”237”>
<
class
name=”data_container”nom=”55”>
<
file
name=”/home/
case
-study/libs/data/container.php”/>
</
class
>
<
class
name=”data_download” nom=”10”>
<
file
name=”/home/
case
-study/libs/data/download.php”/>
</
class
>
其中的
noc 含义是类的代码的行书,nof 为函数的代码行数,noi 为接口代码行数,
nom 为方法 method 代码行数。
接下来我们来看下产生的一张
SVG 图,该图如下所示:
这张图
的反映了项
目中包的依
赖性度量情
况。其基本
理论来源于
Robert C.
Martin 的论
文
(http://www.objectmentor.com/resources/articles/oodmetrc.pdf)中所介绍的关于软件中模块依赖
性和稳定性的度量。其中,提到了如下概念:
Afferent Couplings (Ca)
依赖于被分析
package 的其他 package 的数量,用于衡量 pacakge 的职责。
简单来说,即有多少其他的包或模块调用了被分析的包或模块。
Efferent Couplings (Ce)