[转载]使用PHP_CodeSniffer规范php代码
为什么使用PHP_CodeSniffer
一个开发团队统一的编码风格,有助于他人对代码的理解和维护,对于大项目来说尤其重要。
PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探PHP代码是否有违反一组预先设置好的编码标准的一个包,它是确保你的代码简洁一致的必不可少的开发工具,甚至还可以帮助程序员减少一些语义错误。
什么是Pear
由于PHP_CodeSniffer的安装依赖PHP和Pear环境,那么我们有必要了解下什么是Pear。
来自百度百科:
安装Pear
在已经安装了PHP环境的前提下,进入php目录,如果没有go-pear.php文件,就到http://pear.php.net/go-pear.phar下载go-pear.php文件,该地址在浏览器打开可以看到一段PHP的代码,直接保存文件另存为go-pear.phar到php根目录下面。这里提供个人百度网盘下载:https://pan.baidu.com/s/1jIy6HEm
使用管理员方式打开命令行,输入以下命令:
1 cd c:\php
2 php go-pear.phar
这是出现:
1 Are you installing a system-wide PEAR or a local copy?
2 (system|local) [system] :
直接回车默认system继续,出现如下:

1 Below is a suggested file layout for your new PEAR installation. To
2 change individual locations, type the number in front of the
3 directory. Type 'all' to change all of them or simply press Enter to
4 accept these locations.
5
6 1. Installation base ($prefix) : C:\php
7 2. Temporary directory for processing : C:\php\tmp
8 3. Temporary directory for downloads : C:\php\tmp
9 4. Binaries directory : C:\php
10 5. PHP code directory ($php_dir) : C:\php\pear
11 6. Documentation directory : C:\php\docs
12 7. Data directory : C:\php\data
13 8. User-modifiable configuration files directory : C:\php\cfg
14 9. Public Web Files directory : C:\php\www
15 10. System manual pages directory : C:\php\man
16 11. Tests directory : C:\php\tests
17 12. Name of configuration file : C:\WINDOWS\pear.ini
18 13. Path to CLI php.exe : C:\php
19
20 1-13, 'all' or Enter to continue:

直接回车,出现如下,表示安装成功,
/*省略*/
The 'pear' command is now at your service at c:\php\pear.bat
/*省略*/

在php根目录下面会看到如下几个文件:

双击pear.bat文件,注册pear到当前环境。
安装PHP_CodeSniffer
在安装完pear之后,就可以安装php_CodeSniffer了,继续在cmd中输入:
1 pear install PHP_CodeSniffer
等待安装完成,安装完成后php根目录下回出现以下两个文件:

按照下图依次打开文件夹,在看如下目录结构:

在php->pear->PHP->CodeSniffer->Standards中可以看到一些php的规范,Generic是通用规范。
现在我们就可以使用这些规范来检测我们的php代码了,先说说在命令行中如何使用。
我们可以使用phpcs -h来看看使用帮助:
phpcs -h
看到的如下:

这里我只简单的说明如何检查单个文件或整个文件目录:
1 phpcs -n F:\Hg\web\application\controllers\ //检测文件目录
2 phpcs -n F:\Hg\web\application\controllers\home_controller.php //检测单个文件
看到如下结果(单个文件):

这样,我们就可以根据这些错误信息去修改我们的代码,使其符合规范。
我们可以指定使用某一个规范进行检测,方法如下:
1 phpcs -n --standard=Zend F:\Hg\web\application\controllers\
不指定标准,会使用php通用规范Generic。
安装CodeIgniter标准
去https://github.com/thomas-ernest/CodeIgniter-for-PHP_CodeSniffer下载包解压,复制src目录到php->pear->PHP->CodeSniffer->Standards目录下,并且改名为CodeIgniter

上图为解压后图

上图为放到php代码规范下后的图。
现在就可以使用CodeIgniter标准检测代码了:
1 phpcs -n --standard=CodeIgniter F:\Hg\web\application\controllers\
PHPSTORM配置PHP_CodeSniffer检测环境
打开phpstorm的配置框,找到Languages & Frameworks -> php-> Code Sniffer,不同版本的phpstorm可能会有出入,直接搜索Code Sniffer也可以。

点击如下进行编辑:

设置PHP Code Sniffer path为phpcs.bat的路径。

点击Validate,出现如下图表示设置成功:

打开配置搜索Inspections, 展开PHP,勾选PHP Code Sniffer validation, 选择Coding standard为CodeIgniter, 点击OK确定。

接下来,在编码PHP的时候就会出现规范提示

如上图,鼠标移动到有波浪提示的地方,就会出现phpcs的规范提示了。
配置到此结束,希望可以帮到需要的程序猿!
最规范的代码就是不出现任何的波浪提示。
原文链接:http://www.cnblogs.com/huangbx/p/php_codesniffer.html
[转载]使用PHP_CodeSniffer规范php代码的更多相关文章
- windows环境PhpStorm中简单使用PHP_CodeSniffer规范php代码
为什么使用PHP_CodeSniffer 一个开发团队统一的编码风格,有助于他人对代码的理解和维护,对于大项目来说尤其重要. PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探 ...
- web前端代码规范 - HTML代码规范
Bootstrap HTML编码规范 本文转载自w3cschool. 由于bootstrap得到了世界的认可,因此,此规范用于规范html代码有一定的说服力. 交流qq群:164858883.欢迎各位 ...
- 如何使用 Pylint 来规范 Python 代码风格
如何使用 Pylint 来规范 Python 代码风格 转载自https://www.ibm.com/developerworks/cn/linux/l-cn-pylint/ Pylint 是什么 ...
- 代码规范、代码复审、PSP
作业三: 代码规范.代码复审.PSP 代码规范 代码规范的重要性 一.规范的代码可以促进团队合作 一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异.且不说会存 ...
- 也谈谈规范JS代码的几个注意点
也谈谈规范JS代码的几个注意点 写JS代码差不多也有两年了吧,从刚开始的“初生牛犊不怕虎”乱写一通到后来也慢慢知道去规范一下自己写的代码.这种感觉就像是代码是你的作品,你希望它保持一份不仅干净而且也优 ...
- javascript基础修炼(4)——UMD规范的代码推演
javascript基础修炼(4)--UMD规范的代码推演 1. UMD规范 地址:https://github.com/umdjs/umd UMD规范,就是所有规范里长得最丑的那个,没有之一!!!它 ...
- Python代码规范之---代码不规范,亲人两行泪
任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步! 关于代码规范 Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档 其中第 8 篇 ...
- 个人博客作业Week2(代码规范,代码复审)
Q:是否需要有代码规范 首先我们来搞清楚什么是“代码规范”,它和“代码风格”又有什么关系.依据个人的审美角度,我可能更喜欢在函数与函数之间空出一行,可能在命名习惯和代码注释上更加的internatio ...
- 按照eslint 规范写代码 [eslint] 'flag' is assigned to itself. (no-self-assign)
按照eslint 规范写代码 [eslint] 'flag' is assigned to itself. (no-self-assign)
随机推荐
- 【svn】服务器搭建和迁移
导语 svn客户端大部分开发都会用到,但是为什么我们仍然需要svn服务端呢? 理由可能有: 1,我们想存放一些属于自己的文档,而不像被其他人发现(在自己的网络环境中,安全性更高,更易用,不依赖于公司, ...
- TZOJ 3315 买火车票(线段树区间最小值)
描述 Byteotian州铁道部决定赶上时代,为此他们引进了城市联网.假设城市联网顺次连接着n 个市从1 到n 编号(起始城市编号为1,终止城市编号为n).每辆火车有m个座位且在任何两个运送更多的乘客 ...
- BadgeView 圆形数字提醒 购物车常用
实际上BadgeView这个类就是继承TextView的.很多TextView中设置字体的方法都适用于BadgeView. 1. setTargetView(View) --> 设置哪个控件显示 ...
- Spring事务<tx:annotation-driven/>的理解
在使用Spring的时候,配置文件中我们经常看到 annotation-driven 这样的注解,其含义就是支持注解,一般根据前缀 tx.mvc 等也能很直白的理解出来分别的作用. <tx:an ...
- SharpSvn 调用在运行时提示加载程序集出错,或有依赖项
策略后引用: SharpSvn, Version=1.8009.3299.43, Culture=neutral, PublicKeyToken=d729672594885a28日志: 尝试下载新的 ...
- PAT 1008 数组元素循环右移问题 (20)(代码)
1008 数组元素循环右移问题 (20)(20 分) 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A ...
- Github远程仓库关联
一.Git的安装 1.git的安装和配置 (1)配置用户名和邮箱,如下所示: $ git config --global user.name [username] $ git config --glo ...
- javascript 高级程序设计 九
JS 面向对象的程序设计思想(1)深入理解JS对象 1.js的中没有OO语言中的'类'的概念.ECMAjs中把对象定义为:‘无序属性的集合,其属性可以包含基本值,对象或函数’. 2.ECMAScrip ...
- libusb开发
转:https://www.cnblogs.com/ele-eye/p/3261970.html
- Eclipse快速生成覆盖方法、Getter、Setter的方法
点击鼠标右键 --> Source --> 直接使用快捷键 Alt+Shift+s