CodeSniffer使用教程

一、简介

PHP_CodeSniffer 是一个代码风格检测工具,内置MySource、PEAR、PHPCS、PSR1、PSR2、Squiz和Zend等几套代码规范
它包含两类脚本,phpcs 和 phpcbf

PSR是PHP Standards Recommendation的简称
PSR是php-fig组织制定的一套规范

目前最新的规范为 PSR-12,其他常用规范参考
PHP推荐标准编码规范(PSR-1,PSR-2,PSR-3,PSR-4,PSR-12)

phpcs

phpcs 脚本对 PHP、JavaScript、CSS 文件定义了一系列的代码规范(通常使用官方的代码规范标准,比如 PHP 的 PSR-4),能够检测出不符合代码规范的代码并发出警告或报错(可设置报错等级)

phpcbf

phpcbf 脚本能自动修正代码格式上不符合规范的部分。比如 PSR-4 规范中对每一个 PHP 文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行。

php-cs-fixer
该工具不包含在 PHP_CodeSniffer 中, 是在另一个独立的项目 PHP-CS-Fixer
php-cs-fixer 修复不规范代码 作用等同于 phpcbf 只不过规则好像稍有区别

二、安装

PHP_CodeSniffer 仓库地址
PHP_CodeSniffer 版本发布地址

1. 下载

1.1 github 下载

用git命令下载(或直接下载)仓库源码,然后直接执行,此方法用于安装 最新版本
地址:PHP_CodeSniffer

git clone https://github.com/squizlabs/PHP_CodeSniffer.git

1.2 pear 下载

使用 最新版本, 可以使用命令行下载

pear install PHP_CodeSniffer
downloading PHP_CodeSniffer-3.5.8.tgz ...
Starting to download PHP_CodeSniffer-3.5.8.tgz (716,472 bytes)
...............................................................................................................................................done: 716,472 bytes
install ok: channel://pear.php.net/PHP_CodeSniffer-3.5.8

要使用 非最新版本,可以到PEAR下载,地址:PHP_CodeSniffer

1.3 composer 安装

composer global require "squizlabs/php_codesniffer=*"

下载后会在全局的 Vendor目录下的 bin 中生成两个软链接

phpcbf -> …/squizlabs/php_codesniffer/bin/phpcbf
phpcs -> …/squizlabs/php_codesniffer/bin/phpcs

2. 安装

2.1 查看全局 Vendor 目录位置

$ composer global config bin-dir --absolute
Changed current directory to /Users/haolin/.composer
/Users/haolin/.composer/vendor/bin

2.2 将 phpcs 和 phpcbf 的目录加入环境变量

# 1. 将指定版本的 codesniffer 命令软连到全局命令目录
ln -s  /Users/haolin/.composer/vendor/squizlabs/PHP_CodeSniffer-3.5.8/bin/phpcs ./phpcs
ln -s  /Users/haolin/.composer/vendor/squizlabs/PHP_CodeSniffer-3.5.8/bin/phpcbf ./phpcbf
# 2. 将全局命令目录加入 PATH 环境变量 
vim /etc/paths
source /etc/paths 

参考 Mac 环境变量加载

三、使用

  1. 设置默认代码标准,为了避免每次手动指定标准, 直接设置默认的代码标准为 PSR-12
phpcs --config-set default_standard PSR12
phpcbf --config-set default_standard PSR12
  1. 检测代码文件
phpcs test.php

此时命令行会提示发现的问题列表, 带 [x] 的表示可以被 phpcbf 修正
若需要每次执行时指定代码格式标准, 则加上 –standard=

phpcs --standard=PSR2 test.php
  1. 修正代码
phpcbf test.php

此时会修正问题列表中带 [x] 的问题

以下命令用默认规范来来检查文件和目录

$ phpcs /path/to/code/myfile.php # 检查文件
$ phpcs /path/to/code # 检查目录和子目录下的所有文件
$ phpcs -l /path/to/code # 检查目录下的所有文件,不包括子目录
$ phpcs /path/to/code/myfile.inc /path/to/code/my_dir # 检查文件和目录

上一篇:PSR实验室污水处理设备


下一篇:composer 自动载入的四种方式