文档章节

学习PHP精粹,编写高效PHP代码之质量保证

风格时光
 风格时光
发布于 2014/06/08 20:44
字数 1217
阅读 356
收藏 26

一、使用静态分析工具测量质量

我们用静态分析测量代码而不运行它。实际上,我们将这些工具用于评估代码、读取文件、衡量它所写的要素。使用这些工具,可以帮助我们对代码库有一个完整的层次化的认识,甚至在代码库变得更大、更复杂的时候也能掌握。

静态分析工具是项目过程中的一个关键组成部分,但是,只有定期使用它们,并以理想的方式进行每一次提交,静态分析工具才真正显示出价值。这些工具涵盖了代码的所有方面,从计数类和计算行数,到识别哪里有提示使用复制和粘贴的类似代码段。然后我们来看看静态分析工具在代码质量中两个特别关键的问题上如何帮助我们:编码标准和文档。

1、phploc

phploc:https://github.com/sebastianbergmann/phploc

PHP代码行(phploc)可能并不是一个非常有趣的静态分析工具,但它确实给了我们一些有趣的信息,特别是随着时间的推移当我们反复运行它的时候。phploc提供项目拓扑结构以及尺寸的相关信息。

例如测试一个标准的WordPress版本,我们只需使用如下命令:

$ phploc wordpress

2、phpcpd

phpcpd:https://github.com/sebastianbergmann/phpcpd

PHP复制粘贴器(phpcpd)看起来是一个在代码中寻找类似模式的工具,我们使用它是为了在代码库中识别代码在何处被复制或粘贴。这是常规构建过程中的一个非常有用的工具,但是从输出中获得正确的编号会让项目与项目有所不同。

同样,如果我们测试WordPress,可以使用下面的命令:

$ phpcpd wordpress

 

3、phpmd

phpmd:http://phpmd.org/

PHP项目消息探测器(phpmd)是一个试图量化所谓开发老手所说的“代码发出的气味”的工具。它使用一系列指标寻找似乎失衡的项目元素。该工具生成大量的输出,其中大部分都是好的建议,下面是一个要求phpmd在WordPress中检查命名混乱的命令:

$ phpmd wordpress/  text naming

 

二、编码标准

编码标准是一个在很多开发团队中引起激烈争论的话题,既然缩进和使用空格并未影响代码的运行,那为什么我们要创建格式化的规则并且严格遵守呢?事实上,当我们已经习惯于某个编码风格,而且代码以我们期望的方式排列时,它会变得更加容易阅读。但是,在实际开发过程中,很容易忘记规则,所以需要工具区检查所有的代码。

1、使用PHP代码探测器检查编码标准

PHP代码探测器:http://pear.php.net/package/PHP_CodeSniffer

首先,你需要在服务器上安装这个工具。无论它在开发机器还是开发服务器上,这完全取决于你所拥有的可用资源。

安装后,就可以使用下面的命令测试代码了:

phpcs --standard=PEAR robot.php

 

2、查看违反编码标准的地方

PHP代码探测器有几个非常重要的报表样式,你可以用它们看着所用代码库的“重点”、我们将这些以详细报表的同样方式输出到屏幕上,它们也可以生成其他格式。

要生成一个汇总报表,只需这样做:

phpcs --standard=PEAR --report=summary *

3、查看PHP代码探测器标准

有几个编码标准是PHP代码探测器默认运行的,你可以生成或设置任何自己的标准。若想看到有哪些可用的标准,你可以运行具有-i开关的phpcs。

$ phpcs -i

 

三、文档和代码

使用phpDocumentor将注释转换为文档。

phpDocumentor:http://www.phpdoc.org/

例如:

phpdoc -t docs -o HTML:Smarty:PHP -d .

四、源代码管理

常用源代码管理工具:

Subversion:http://subversion.apache.org/

Git:http://git-scm.com/

五、自动部署

Phing:http://www.phing.info/

Phing 是一个基于Apache ANT 的项目构建系统。Phing使用基于XML的配置,默认保存在一个名为build.xml的文件中。

我们给这个项目命令,并定义一系列属于这个项目的任务,还可以指定哪些任务被默认运行,都可以通过Phing进行配置。

© 著作权归作者所有

共有 人打赏支持
风格时光
粉丝 0
博文 4
码字总数 4542
作品 0
淮南
程序员
私信 提问
学习PHP精粹,编写高效PHP代码之安全性

一、过滤输入、避免输出 有时我们将短语“过滤输入、避免输出”缩写为FIEO,这已成为PHP应用程序的安全真言。 1、利用ctype进行验证 ctype:http://php.net/ctype 2、利用PCRE(Perl兼容的正...

风格时光
2014/06/09
0
0
【上海外企高薪招聘】ihush俏物悄语PHP系统架构师、程序经理、产品设计经理、软件开发工程师等(最高20K/月)

ihush俏物悄语(上海伯络商贸有限公司) 我们是源自欧洲的电子商务网站 www.ihush.com ,一个提供中高端时尚品牌高品质的快速消化库存的网上平台。于2008年年底成立,每个品牌的网上特卖会都限...

keith-hr
2011/07/08
549
0
PHP机器学习/神经网络框架:PHP-ML库

PHP机器学习/神经网络框架:PHP-ML库 Love冥天个人博客-关注IT|PHP|互联网|php个人博客交流2017-10-1039 阅读 PHP框架神经网络 php-ml是一个使用PHP编写的机器学习库。虽然我们知道,python或...

Love冥天个人博客-关注IT|PHP|互联网|php个人博客交流
2017/10/10
0
0
10 件在 PHP 7 中不要做的事情

1. 不要使用函数 这一天终于来了,从此你不仅仅“不应该”使用函数。PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的函数,或者更灵活的 PDO 实现。 2. 不要编写垃圾代码...

两味真火
2016/09/18
14.2K
52
PECL 和 PEAR 有什么区别?

要为大家分享的内容是PECL 和 PEAR 他们之间的不同和相同之处。 PEAR 是“PHP Extension and Application Repository”的缩写,即PHP扩展和应用仓库。   PEAR 将PHP程序开发过程中常用的功...

slagga
2016/11/15
9
0

没有更多内容

加载失败,请刷新页面

加载更多

中国龙-扬科
10分钟前
0
0
假若明天来临——《AI.未来》读后感3900字

假若明天来临——《AI.未来》读后感3900字: 你有没有想过,如果有一天你被确诊为癌症患者,你会做些什么?你有没有想过,在你百年之后,你希望你的墓碑上刻写着什么内容? 在我翻开李开复老...

原创小博客
16分钟前
0
0
tomcat线程模型

Connector结构 BIO模式 NIO模式

grace_233
56分钟前
2
0
Javascript

变量定义 以$,_,字母开头 大小写敏感 var 关键字声明变量 声明未赋值undefined 数据类型 字符串,数字,布尔,数组,NULL,undefined 变量均为对象 函数 无默认值 var声明的是局部变量 函数外声明...

关元
57分钟前
1
0
文件系统、服务、防火墙、SELINUX——安全四大金刚

一提到安全,大家都会想到防火墙,和文件系统权限。而实际工作环境中,我们在Linux的安全配置,会涉及到四个级别。我们思考一个场景,你要在百度盘中存放一个文件,这个动作需要考虑下面四个...

Linux就该这么学
58分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部