使用PHP_CodeSniffer规范你的代码

今天跟拯明还有两位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

phpcs.JPG
使用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在检查完文件以后会给你一个错误报告,列出全部文件中违反编码标准的错误和警告信息。

phpcsreport.JPG

    若是你不想在输出的检查结果中包含警告信息(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呗.. javascript

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

阅读(38) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议