0

0

PHP_CodeSniffer是什么?如何安装使用?

藏色散人

藏色散人

发布时间:2022-01-11 16:16:40

|

4911人浏览过

|

来源于awaimai

转载

本篇文章给大家介绍php_codesniffer,以及其安装和使用教程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

PHP_CodeSniffer是一款自动化的PHP代码规范检查工具

CodeSniffer内置MySourcePEARPHPCSPSR1PSR2SquizZend等几套代码规范。

当然,你也可以新增自己的代码规范

PHP_CodeSniffer包含两个工具,phpcs用来检查代码规范phpcbf用来纠正代码规范

立即学习PHP免费学习笔记(深入)”;

1 安装

PHP_CodeSniffer 有好几种安装方式。

1.1 可执行文件方式安装

用git命令下载(或直接下载)仓库源码,然后直接执行:

git clone https://github.com/squizlabs/PHP_CodeSniffer.git
cd PHP_CodeSniffer
php bin/phpcs -h
php bin/phpcbf -h

要使用非最新版本,可以到PEAR下载,地址:http://pear.php.net/package/PHP_CodeSniffer/download

例如,要用2.9.1,PEAR下载之后解压,执行的命令是:

php scripts/phpcs -h
php scripts/phpcbf -h

与 githuh 下载不同的是,执行文件在scripts目录。

1.2 phar文件安装方式

phar也就是php archive,把php文件打包成一个文件供服务。

Linux系统用命令下载phar文件:

curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar

Windows系统用浏览器访问上面的两个链接,下载这两个phar文件。

然后在phar文件的目录里面执行:

php phpcs.phar -h
php phpcbf.phar -h

能看到phpcs和phpcbf的帮助信息,说明安装成功。

说明:

  • 这种方式要保证php可执行文件已经添加到PATH环境,不然就得指定绝对目录
  • 每次执行必须把这两个.phar文件放到对应目录,然后在那个目录下运php phpcs.phar xxx行命令

1.3 pear安装方式

如果本地安装了pear(pear安装方法),也可以通过pear来安装PHP_CodeSniffer,命令:

pear install PHP_CodeSniffer

通过pear安装后,CodeSniffer的规范文件会安装在:/path/to/pear/PHP/CodeSniffer/src/Standards

1.4 composer安装方式

composer安装也很方便,一个命令:

composer global require "squizlabs/php_codesniffer=*"

说明:这里需要composer命令已经在PATH环境变量中。

也可以在composer.json文件中使用:

{
    "require-dev": {
        "squizlabs/php_codesniffer": "3.*"
    }
}

完成后执行命令:

./vendor/bin/phpcs -h
./vendor/bin/phpcbf -h

1.5 配置phpcs直接在命令行中执行

以上的方式中,除了pear安装方式,其他方式要执行phpcs命令,都需要在前面加上php。

如果是Linux提供,因为php执行文件路径已经在环境PATH中,所以把bin(或scripts) 的路径加入PATH,就可以在终端执行phpcs命令了。

但是在Windows系统中,实际是执行phpcs.bat文件,这个文件又引用了同目录下的phpcs文件。

在phpcs.bat中,我们需要配置两个变量,才能在CMD中正确执行phpcs命令。

如下,需指定php.exephpcs文件的绝对位置:

if "%PHPBIN%" == "" set PHPBIN=D:\php56n\php.exe
if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH
GOTO RUN
:USE_PEAR_PATH
set PHPBIN=%PHP_PEAR_PHP_BIN%
:RUN
"%PHPBIN%" "D:\www\PHP_CodeSniffer-2.9.1\scripts\phpcs" %*

然后把路径D:\www\PHP_CodeSniffer-2.9.1\scripts\加入到PATH中,就可以在CMD中执行phpcs了。

说明:phpcbf也需要这样的修改。

2 使用

上面我们看到 PHP_CodeSniffer 有两个命令。

默认情况下,PHP_CodeSniffer 使用PEAR规范检查代码。

2.1 使用命令

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

$ 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   # 检查文件和目录

2.2 检查结果

默认情况下,检查结果包含错误和警告,如下:

$ phpcs /path/to/code/myfile.php

FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------------
FOUND 5 ERROR(S) AND 1 WARNING(S) AFFECTING 5 LINE(S)
--------------------------------------------------------------------------------
  2 | ERROR   | Missing file doc comment
 20 | ERROR   | PHP keywords must be lowercase; expected "false" but found
    |         | "FALSE"
 47 | ERROR   | Line not indented correctly; expected 4 spaces but found 1
 47 | WARNING | Equals sign not aligned with surrounding assignments
 51 | ERROR   | Missing function doc comment
 88 | ERROR   | Line not indented correctly; expected 9 spaces but found 6
--------------------------------------------------------------------------------

如果不要显示警告,加个-n参数:

$ phpcs -n /path/to/code/myfile.php

仅显示检查结果概要:

$ phpcs --report=summary /path/to/code

2.3 指定规范

可以使用 -- standard参数指定一个或多个规范来检查。

$ phpcs --standard=PEAR /path/to/code/myfile.inc                      # 使用内置规范
$ phpcs --standard=/path/to/MyStandard /path/to/code/myfile.inc       # 使用指定路径下的规范
$ phpcs --standard=PEAR,PHPCS,/path/to/MyStandard file.php            # 使用多个规范

$ phpcs --config-set default_standard Squiz                           # 修改默认规范为Squiz(原本是PEAR)

查看现有规范:

$ phpcs -i

2.4 查看帮助

$ phpcs -h

推荐学习:《PHP视频教程

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

155

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

420

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

536

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

313

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

1100

2026.01.21

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

744

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

559

2023.07.06

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

54

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号