使用PHP CodeSniffer编写符合PHP标准的代码

我发现PHP的最大问题之一就是它的声誉。这是由于许多开发人员每天都在滥用该语言。他们编写的代码行之有效,但效率很高,但是由于没有注释,试图弄清楚它的工作可能要花费数小时,而且代码通常是以任何旧的方式编写的。PHP在编写代码方面非常宽容。

这是CodeSniffer出现的地方。CodeSniffer是一个PHP5脚本,它将遍历您提供的任何PHP(或JavaScript)文件,并从一组已定义的编码标准中检测出编码违规情况。这些标准从简单的事情开始,例如使用空格而不是制表符(由于制表符在不同计算机上的显示方式不同),再到更复杂的事情(例如,在私有变量后面加上下划线)。

因为CodeSniffer是PEAR框架的一部分,所以您可以使用pear命令安装它。只要安装了PEAR,就可以使用以下命令来安装CodeSniffer。

pear install PHP_CodeSniffer

如果一切正常,您应该在PHP文件夹中找到一个名为phpcs.bat的文件。然后,您可以使用此文件针对您的PHP脚本运行。如果要针对文件运行此文件,请执行以下操作。

phpcs class.MyClass.php

这将产生类似以下输出的内容。我不会重现所有内容,因为有很多错误。

FILE: class.MyClass.php
--------------------------------------------------------------------------------
FOUND 165 ERROR(S) AND 35 WARNING(S) AFFECTING 123 LINE(S)
--------------------------------------------------------------------------------
   1 | ERROR   | End of line character is invalid; expected "\n" but found
     |         | "\r\n"

如果要检查整个目录,则只需键入目录路径。

phpcs /path/to/file/

这将依次检查每个文件并产生输出。

我以为我的编码与我的代码非常一致,但是在测试了一个简单的200行类之后,我发现了超过165个错误和35个针对各种情况的警告。主要的抱怨是我使用制表符而不是空格,对此我只能怪我的编辑。但是,还有很多其他事情,例如将等号与其他行上的等号对齐。

使用此工具将帮助您编写更易于理解的代码,但也会在某些语法错误上线之前发现它们。在提交更改之前,最好在代码上使用此工具,因为它可以防止您犯一些愚蠢的错误,例如从行尾离开分号。