jobilla / coding-rules
Jobilla针对不同工具的通用代码风格规则
Requires
- phpmd/phpmd: @stable
- squizlabs/php_codesniffer: ^3.6.0
This package is auto-updated.
Last update: 2024-09-06 21:38:16 UTC
README
PHP代码的完整QA集包括以下工具
- PHPUNIT (https://github.com/sebastianbergmann/phpunit)
- PHPCS (https://github.com/squizlabs/PHP_CodeSniffer)
- PHPMD (https://github.com/phpmd/phpmd)
- PHPCPD (https://github.com/sebastianbergmann/phpcpd)
- PHPLOC (https://github.com/sebastianbergmann/phploc)
推荐用法
我们内部使用持续集成服务器(Bamboo)运行自动检查,但基本上任何持续集成服务器都应该能够完成这项工作。(强烈推荐)
您也应该能够将工具链接到您选择的文本编辑器/IDE。以下是我们的内部开发团队偏好的示例。
PHPMD 插件
https://github.com/AtomLinter/linter-phpmd
https://github.com/SublimeLinter/SublimeLinter-phpmd
https://www.jetbrains.com/help/phpstorm/10.0/using-php-mess-detector.html
PHPCS 插件
https://atom.io/packages/linter-phpcs
https://github.com/SublimeLinter/SublimeLinter-phpcs
https://www.jetbrains.com/help/phpstorm/10.0/using-php-code-sniffer-tool.html
安装和运行检查
- 克隆仓库/将其包含在项目的composer.json中
- 如果通过composer包含,运行
composer update将配置文件安装到您的vendor文件夹中 - 请记住,在composer.json中包含到主项目的
require-dev部分中所需的QA工具,以便使用实际工具和FG自定义配置文件 - 来自我们内部项目的composer.json的示例
"require-dev": {
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "2.*",
"phpmd/phpmd" : "@stable",
"phploc/phploc": "*",
"sebastian/phpcpd": "*",
"jobilla/coding-rules": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "git@github.com:jobilla/coding-rules.git"
}
]
- 通过CLI运行工具或将其集成到您的开发工具中
- 通过CLI运行示例
$ vendor/bin/phpmd --reportfile ./phpmd-report.html app/ html vendor/jobilla/coding-rules/phpmd/ruleset.xml
$ vendor/bin/phpcs --standard=./vendor/jobilla/coding-rules/phpcs/ruleset.xml --report-file=./phpcs-report.txt app/
$ vendor/bin/phpcpd app/ > ./phpcpd-report.txt
$ vendor/bin/phploc app/ > ./phploc-report.txt
$ vendor/bin/phpunit > ./phpunit-report.txt
自动修复代码风格错误
PHPCS附带一个名为phpcbf的可执行文件,允许自动修复由CodeSniffer检测到的某些违规行为。更多信息可以通过此链接找到: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Fixing-Errors-Automatically
通过CLI运行phpcbf的示例
$ vendor/bin/phpcbf --standard=vendor/jobilla/coding-rules/phpcs/ruleset.xml app
以下仓库和作者的作业已被用作配置的各个部分的基座,或者对最终结果产生了重大影响
https://github.com/bigbank-as/phpcs
https://gist.github.com/slayerfat/2b3cc4faf94d2863b505