PHP_CodeSniffer是什么?如何安装使用?
本篇文章给大家介绍PHP_CodeSniffer,以及其安装和使用教程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
PHP_CodeSniffer是一款自动化的PHP代码规范检查工具。
CodeSniffer内置MySource
、PEAR
、PHPCS
、PSR1
、PSR2
、Squiz
和Zend
等几套代码规范。
当然,你也可以新增自己的代码规范。
- PHP_CodeSniffer 仓库地址:https://github.com/squizlabs/PHP_CodeSniffer
- PHP_CodeSniffer 版本发布地址:http://pear.php.net/package/PHP_CodeSniffer
PHP_CodeSniffer包含两个工具,phpcs
用来检查代码规范,phpcbf
用来纠正代码规范。
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.exe
和phpcs
文件的绝对位置:
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_CodeSniffer是什么?如何安装使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...
