文档章节

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

风格时光
 风格时光
发布于 2014/06/08 20:44
字数 1217
阅读 346
收藏 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
淮南
程序员
10 件在 PHP 7 中不要做的事情

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

两味真火
2016/09/18
12.1K
52
学习PHP精粹,编写高效PHP代码之安全性

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

风格时光
2014/06/09
0
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
成为一个 PHP 专家:缺失的环节

这一篇文章是“Becoming a PHP Professional”系列 4 篇博文中的第 1 篇。 当浏览各类与PHP相关的博客时,比如Quora上的问题,谷歌群组,简讯和杂志,我经常注意到技能的等级分化。问题都类似...

oschina
2014/02/27
5.3K
54
33个超级有用必须要收藏的PHP代码样例

作为一个正常的程序员,会好几种语言是十分正常的, 相信大部分程序员也都会编写几句PHP程序,如果是WEB程序员,PHP一定是必备的, 即使你没用开发过大型软件项目,也一定多少了解它的语法。...

代码技巧
2015/09/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaFX WebView概述,很强大,内置了类似Electron的功能

来自 Murali Billa JavaFX技术人员的主要成员 在本博客中,我们将了解JavaFX如何呈现网页及其主要的组件 - 即WebView JavaFX是: 用于创建和交付桌面应用程序的软件平台,以及可以在各种设备...

GuoMengyue
18分钟前
3
0
数据库监控系统小实现1

需求:通过java 去调取python 去目标数据库采集信息,然后插入到数据库,由前台UI显示出来,从而达到监控目的。 设计:通过java的Runtime.getRuntime().exec(args1)方法去调用python脚本,j...

hnairdb
20分钟前
0
0
spring boot logback-spring 配置 日志分文件

因为更规规范化,想将日志分文异常类型,分别存储起来,方便以后查询问题。 以下是 logback-spring.xml 配置: <?xml version="1.0" encoding="UTF-8"?><configuration scan="true"> ...

诺岚
21分钟前
0
0
OSChina 周三乱弹 —— 这下回去要被老婆挠死

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享Passenger的单曲《Let Her Go》 《The Importance of Being Idle》-Noel Gallagher/It's a Cover Up 手机党少年们想听歌,请使...

小小编辑
40分钟前
453
18
RedHat已更改其开源许可规则

对于编程圈外的人来说,软件许可证似乎并不重要,但是,在开源领域,开源许可是非常重要的。 因此,领先的Linux公司Red Hat宣布了一件大事,所有新的由Red Hat发起的使用GNU通用公共许可证(...

linuxCool
53分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部