flyeralarm / php-code-validator
FLYERALARM 定制的编码标准
4.1.0
2023-10-20 14:47 UTC
Requires
README
此仓库包含我们在FLYERALARM开发的PHP代码的规则集。它主要基于PSR-12,并添加了一些自定义规则。规则通过squizlabs/PHP_CodeSniffer强制执行。
本文件中“必须”,“不得”,“必需”,“应”,“不应”,“应该”,“不应该”,“推荐”,“可能”和“可选”等关键词的解释,请参照RFC 2119。
PSR-12之外的定制规则
- 变量名必须使用小驼峰命名法
- 不得使用Yoda条件
- 使用@expectedException的单元测试必须包含@expectedExceptionMessage注解
- 异常信息不得包含感叹号或句号
- 不得使用GOTO和EVAL关键字
- 命名空间中不得使用下划线
- 不得使用类类型后缀,如Interface,Abstract或Trait(例如LoggerInterface)
如何在本项目中工作
准备运行命令
make install
要检查代码风格合规性或修复可以自动修复的内容,请运行命令
make sniff make sniff-fix
要测试规则集,请运行命令
make test
由于测试运行器是Docker化的,我们可以使用不同的PHP版本进行测试
PHP_VERSION=8.2 make test
或一次性全部进行
make test-all
嵌入到你的项目中
作为composer开发依赖项添加
composer require --dev flyeralarm/php-code-validator
在Makefile中嵌入代码检查器。请使用制表符而不是空格进行缩进。
示例Makefile
test:
vendor/bin/phpcs -w -p -s --standard=vendor/flyeralarm/php-code-validator/ruleset.xml src/ tests/
添加项目特定规则
为项目定义自定义规则的最佳方式是在项目的根目录中提供一个phpcs.xml
文件。如果没有定义其他标准,PHP_CodeSniffer将自动检测此标准(参见PHP_CodeSniffer 高级使用)。
然后,此phpcs.xml
可以引用FLYERALARM PHP编码标准。
<?xml version="1.0" encoding="UTF-8" ?> <ruleset name="Project Rules"> <file>./src/</file> <file>./tests/</file> <arg value="sp"/> <rule ref="vendor/flyeralarm/php-code-validator/ruleset.xml"/> <!-- custom rules --> </ruleset>
创建phpcs.xml
文件后,可以使用以下方式验证代码:
vendor/bin/phpcs
更新到最新稳定版
composer update flyeralarm/php-code-validator
运行检查器
make test
在PHPStorm中使用
- 确保已配置PHP Code Sniffer的路径 - 打开配置手册
- 打开设置
Mac:PhpStorm
>首选项
>编辑器
>检查
>PHP
Windows & Linux:文件
>设置
>编辑器
>检查
>PHP
\ - 勾选
PHP Code Sniffer验证
复选框 - 单击项目
PHP Code Sniffer验证
以打开其右侧的设置 - 选择“自定义”作为“编码标准:”,然后单击右侧的
...
- 选择规则集的路径。这将是类似于 <YOUR_APP_ROOT>/vendor/flyeralarm/php-code-validator/ruleset.xml 的内容
- 通过按
ok
确认对话框