自动检查代码规范 - PHP_CodeSniffer介绍

各公司各团队制定的代码规范当然是各不相同,而且有好一部分是大同小异的

这么多“自定义”规则的情况下,通常也要靠代码审核人员去专门审核才行。但其实人工审核成本很大,我曾经开始一段时间就是使用人工审核的,每天有N多代码提交,每天都加班审核,周六日也花点时间审核,慢慢地发现,我最多审核出来的不是代码逻辑问题,而是他们的=号左右两边缺少了空格

我就为了这个空格查了老久,并留言告知团队成员修正,于是我开始反思:花这么多时间查得70%的代码质量问题,还有30%才是代码逻辑问题,这值得吗,这些代码质量问题能不能更方便快捷地找出来?


好了后来开始用起了自动化的检查工具,叫PHP_CodeSniffer,用这个工具之前要先安装pear

CodeSniffer内置了几套代码规范,可以直接用/root/pear/bin/phpcs --standard=$内置规范名称 $被检查的文件来检查指定文件的规范,比如说psr2标准,又或者pearzend

你也可以自己新增自己的代码规范,并且可以引用已经存在的代码规+自己定义的新检查逻辑,也可以只引用已存在的规范里面的某一条检查规则,这样引用各个现存规范的规则,再加上自己的规范检查规则,就形成了自己的规范了。

不过说实话,其实大部分规范能检查出来,但光靠这个不能把你制定的所有代码规范都给检查出来 ,比如要求if里和else面操作的数组在if结束后还要用的话,需要在if前声明,这是检查不出来的(如下代码)

$c = 0; //要求先在这里声明,至少我不知怎么编写CodeSniffer的检查逻辑,好像也不是不能检查,就是麻烦很大
if($a == $b){
	$c = 1;
}else{
	$c = 2;
}

使用$c);