您的位置:首页 > Web前端

使用PHP_CodeSniffer规范你的代码

2013-08-30 15:03 337 查看
今天跟拯明还有两位61期的妹纸聊了聊,谈到了代码规范,我也大概讲了一些需要注意的点,可是觉得还不够仔细,这里分享一下最近才开始使用的工具,当然代码规范可是一直对自己要求很高哦,哈哈,好了不啰嗦了,下面的内容是从网上复制的,刚刚答应拯明写一篇,可是刚刚发现这篇讲得还是挺好的就不费劲了(程序员都很懒惰),来源:http://blog.csdn.net/xinhaozheng/article/details/3324796

认识PHP_CodeSniffer

    PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探PHP代码是否有违反一组预先设置好的编码标准的一个包,它是确保你的代码简洁一致的必不可少的开发工具,甚至还可以帮助程序员减少一些语义错误。

安装PHP_CodeSniffer

    如果你的WEB服务器上已经安装了PHP和PEAR,那么直接运行下列命令就可以安装PHP_CodeSniffer。

$
pear install
PHP_CodeSniffer

    安装后,你可以在命令行敲入命令phpcs来调用PHP_CodeSniffer检查代码,默认情况下,PHP_CodeSniffer采用的是PEAR的

编码标准;你现在就可以尝试一下用它来检查你的代码是否符合编码标准,如:

$
phpcs /path/to/code/yourfile.php

    如果要检查一个目录,则应使用下列命令:

$ phpcs
/path/to/code

PHP_CodeSniffer的使用方法

    使用PHP_CodeSniffer的主程序是phpcs,它的具体使用方法我们可以通过在命令行运行下列命令来获得phpcs的相关参数及

相应的使用信息。

$
phpcs -h



使用PHP_CodeSniffer检查文件或文件目录

    使用PHP_CodeSniffer的最简单的方式是直接给phpcs传递一个路径。如果路径是指向一个文件目录,那么PHP_CodeSniffer会检查该文件目录及其也有了目录中的所有文件。如果你不希望检查所有子目录,你可以加上-l(locally)参数,这样它只会检查当前目录中的文件。$
phpcs /path/to/code/myfile.inc

$ phpcs /path/to/code/my_dir    你也可以同时指定多个文件或目录以供PHP_CodeSniffer检查。

$
phpcs /path/to/code/myfile.inc
/path/to/code/my_dir控制PHP_CodeSniffer输出的检查结果

    
PHP_CodeSniffer在检查完文件之后会给你一个错误报告,列出所有文件中违反编码标准的错误和警告信息。



    如果你不想在输出的检查结果中包含警告信息(WARNING),你可以给phpcs加上-n参数。    默认情况下,检查完文件后PHP_CodeSniffer会输出所有的错误和警告信息的列表,通常是很长的,尤其是在检查比较多的文件的时候,列表很长而且速度很快,你根本看不到什么。这个时候你可能只需要知道每个文件各自都有多少个错误和警告信息,你可以使用
--report=summary 参数。$ phpcs --report=summary /path/to/code

    此外,PHP_CodeSniffer还可以将检查结果以xml,csv和类似于Checkstyle输出结果的格式输出,这样方便你在你自己的脚本中对检查结果进步分析处理或者提供给支持Checkstyle的应用程序处理。

$ phpcs
--report=checkstyle /path/to/code

$ phpcs
--report=csv /path/to/code

$ phpcs
--report=checkstyle /path/to/code

注:在以csv格式输出检查结果时,输出结果的第一行指示了检查结果信息的顺序(即哪一列对就着什么信息)。

    另外,PHP_CodeSniffer在处理过程中不输出任何信息直到处理结束输出检查结果。在处理比较多的文件时,有可能需要等待比较长的时间,如果你想知道在此过程中发生了什么事情,你可以在执行PHP_CodeSniffer时带上-v参数,这样PHP_CodeSniffer在处理过程中会输出当前正在处理的文件的名称,所包含的行数和标识符的个数。

$ phpcs
/path/to/code/CodeSniffer -v

设置PHP_CodeSniffer的相关配置选项

    PHP_CodeSniffere有提供一些配置选项,某些编码标准只有在设置了配置选项后才能使用。要设置一个HP_CodeSniffer配置选项,可以使用:

$ phpcs
--config-set <option> <value>

    你可以使用下列命令删除任意的配置选项,使它恢复到初始值。

$
phpcs --config-delete <option>

    使用下列查看配置选项的当前设置

$ phpcs
--config-show

    下列是PHP_CodeSniffer的配置选项列表及其设置方法:

default_standard  默认的编码标准

report_format    
默认的错误报告格式

show_warnings     是否默认显示错误报告中的警告(WARNING)信息

tab_width        
默认的tab宽度相当于几个空格

zend_ca_path      Zend编码标准所使用的配置选项,指向Zend Code
Analyzer(Zend编码分析器)所在的路径


    默认情况下,如果命令行没有指定编码标准,PHP_CodeSniffere会使用PEAR作为编码标准。你可以通过下列命令来修改默认的编码标准。

$ phpcs
--config-set default_standard Zend

    默认情况下,即如果命令行没有提供报表输出格式的参数,PHP_CodeSniffere会使用完全错误报表格式输出检查结果。你可以通过下列命令来修改检查结果的默认输出格式。

$ phpcs
--config-set report_format summary

    默认情况下,PHP_CodeSniffere输出结果会输出错误和警告信息,你可以在执行phpcs带上-n去掉警告信息,也可以通过设定show_warnings来决定默认是要显示还是不显示。

$ phpcs
--config-set show_warnings 0

    默认情况下,PHP_CodeSniffere不会将检查过的文件中的tab替换成空格。在命令行指定一个tab宽度可以使用
PHP_CodeSniffere在检查时替换掉被检查文件中的tab。你可以设定config-set使PHP_CodeSniffere默认替换
tab成空格。

$ phpcs --config-set tab_width 4

注:在PHP_CodeSniffere已经被设定成默认替换tab成空格时,在命令行指定tab_width为0会让PHP_CodeSniffere停止替换tab。

    Zend编码标准包含一个使用Zend Code
Analyzer(Zend编码分析器)的sniff,使用zend_ca_path配置选项告诉Zend Code
Analyzer的路径。

$ phpcs --config-set zend_ca_path
/path/to/ZendCodeAnalyzer

指定PHP_CodeSniffer所需检查的文件类型(扩展名)

    默认情况下,PHP_CodeSniffer会检查.inc和.php文件。也就是说,如果你指定了一个目录让PHP_CodeSniffer检查,那么只有以inc和php为扩展名的文件才会被检查。你可以在命令行通过extensions参数来设置哪一类扩展名的文件需要PHP_CodeSniffer
检查。$ phpcs --extensions=php /path/to/code        
只检查该目录中以php为扩展名的文件

$ phpcs
--extensions=php,inc,lib /path/to/code
检查该目录中所有以php,inc,lib为扩展名的文件

    注:此参数对在命令行直接指定文件(而不是文件目录)的情况不适用,因为这种情况下PHP_CodeSniffer将会忽略掉所有文件的扩展名。

$ phpcs
--extensions=inc sgl_06x/www/index.php sgl_06x/www/rpc/server.php
虽然指定了inc,仍然会检查php文件

    忽略掉文件的扩展名是PHP_CodeSniffer的一个特性,也是唯一的一种检查没有扩展名文件的方法。如果给phpcs的是一个文件目录作为参数,那么这个目录中的所以没有扩展名的文件将不会被检查,如果要检查,只能一个一个检查。

让PHP_CodeSniffer在检查大量文件时忽略掉其中的某些特殊的文件

    在PHP_CodeSniffer对大量文件进行检查时,我们可能不想PHP_CodeSniffer检查其中的某些特殊的文件。你可以使用ignore参数指定文件名的匹配模式,所有文件名与模式匹配的文件都会被忽略掉而不检查。  

$ phpcs --ignore=*/tests/*,*/data/* /path/to/code

其实后面还有一些更多的功能,可是我觉得没必要看了,会用上面的差不多了,不然吓着人就没人用了....这可是好东西哦!用好了在公司很有好处。

这里提醒一下,不要看错误报告是英文就放弃了哈,其实不难的,实在不行google呗..

原文地址:http://bbs.lampbrother.net/read-htm-tid-152445.html

阅读(38) | 评论(0) | 转发(0) |

0
上一篇:兄弟连里的英雄联盟

下一篇:最全的 Twitter Bootstrap 开发资源清单

相关热门文章
C++ 将unsigned char数组 ...

linux内核的一些预定义...

美国RT服务器租用仿牌网站不二...

北京外资公司注册都需要那些流...

text段,data段,bss段,堆和栈 ...

phpStudy 2013下载,PHP5开发...

草和谐榴社区caoliushequ...

灵芝的种类和图片

为PHP添加GD库支持

秋天的惆怅

大家都是用什么来管理hadoop集...

网站被人挂了吗,添加了些程序...

Nginx如何保证不走宕机的那个...

大家谈谈MYSQL客户端和服务器...

以下代码运行后为何会输出5?...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: