您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# php-cs-fixer怎么使用
## 一、工具简介
PHP-CS-Fixer 是一个开源的PHP代码格式化工具,能够自动检测和修复不符合编码规范的PHP代码。它支持PSR-1、PSR-2、PSR-12等主流PHP编码标准,也可以根据项目需求自定义规则。
### 核心特点
- 支持批量处理整个项目或单个文件
- 提供200+内置修复规则
- 可配置自定义规则集
- 与主流IDE和CI/CD工具集成
- 支持缓存机制提升执行效率
## 二、安装方法
### 1. 全局安装(推荐)
通过Composer全局安装:
```bash
composer global require friendsofphp/php-cs-fixer
安装完成后将Composer的全局vendor目录添加到PATH环境变量:
export PATH="$PATH:$HOME/.composer/vendor/bin"
验证安装:
php-cs-fixer --version
composer require --dev friendsofphp/php-cs-fixer
wget https://cs.symfony.com/download/php-cs-fixer-v3.phar -O php-cs-fixer
chmod +x php-cs-fixer
sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer
php-cs-fixer fix /path/to/file.php
php-cs-fixer fix /path/to/project
参数 | 说明 |
---|---|
--dry-run |
只显示需要修复的文件而不实际修改 |
--diff |
显示修复前后的差异 |
--rules=@PSR12 |
指定使用的规则集 |
--using-cache=no |
禁用缓存 |
--verbose |
显示详细输出 |
--allow-risky=yes |
允许执行有风险的规则 |
在项目根目录创建 .php-cs-fixer.php
或 .php-cs-fixer.dist.php
:
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->exclude('vendor');
return PhpCsFixer\Config::create()
->setRules([
'@PSR12' => true,
'strict_param' => true,
'array_syntax' => ['syntax' => 'short'],
])
->setFinder($finder);
'rules' => [
// 基础规则集
'@PSR12' => true,
// 数组使用短语法
'array_syntax' => ['syntax' => 'short'],
// 类属性必须声明可见性
'visibility_required' => ['elements' => ['property', 'method']],
// 方法参数类型提示
'declare_strict_types' => true,
// 删除多余空行
'no_extra_blank_lines' => true,
// 方法链调用换行
'method_chaining_indentation' => true,
]
return PhpCsFixer\Config::create()
->setRules([
'@Symfony' => true,
'@PHP80Migration' => true,
// 自定义覆盖规则
'concat_space' => ['spacing' => 'one'],
]);
$finder->notPath('src/Debug/')
->notName('*.test.php');
return PhpCsFixer\Config::create()
->setRules([
'@PSR12' => true,
'@PHP80Migration:risky' => true,
]);
继承抽象规则类:
use PhpCsFixer\AbstractFixer;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\Tokenizer\Tokens;
class MyCustomFixer extends AbstractFixer {
public function getDefinition() {
return new FixerDefinition(
'Description of your fixer.',
[]
);
}
public function isCandidate(Tokens $tokens) {
return $tokens->isTokenKindFound(T_STRING);
}
protected function applyFix(\SplFileInfo $file, Tokens $tokens) {
// 实现修复逻辑
}
}
安装PHP-CS-Fixer扩展后配置settings.json:
{
"php-cs-fixer.executablePath": "${extensionPath}/php-cs-fixer",
"php-cs-fixer.onsave": true,
"php-cs-fixer.rules": "@PSR12",
"php-cs-fixer.config": ".php-cs-fixer.dist.php"
}
php-cs-fixer
fix $FileDir$/$FileName$ --rules=@PSR12
$ProjectFileDir$
name: PHP-CS-Fixer
on: [push, pull_request]
jobs:
php-cs-fixer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install PHP-CS-Fixer
run: composer require --dev friendsofphp/php-cs-fixer
- name: Run PHP-CS-Fixer
run: vendor/bin/php-cs-fixer fix --dry-run --diff --verbose
在 .git/hooks/pre-commit
中添加:
#!/bin/sh
files=$(git diff --cached --name-only --diff-filter=ACM | grep ".php$")
if [ "$files" != "" ]; then
vendor/bin/php-cs-fixer fix $files
git add $files
fi
清除缓存:
php-cs-fixer fix --using-cache=no
使用 --stop-on-violation
参数定位第一个冲突点:
php-cs-fixer fix --stop-on-violation
php-cs-fixer fix src/ tests/ --path-mode=intersection
--dry-run
,逐步修复问题工具 | 特点 | 适用场景 |
---|---|---|
PHP-CS-Fixer | 修复能力强,规则丰富 | 需要自动修复的场景 |
PHP_CodeSniffer | 检查为主,修复有限 | 需要详细报告的场景 |
PHPCBF | PHPCS的修复工具 | 与PHPCS配合使用 |
Prettier-PHP | 专注于代码样式 | 前端团队统一工具链 |
PHP-CS-Fixer 是现代化PHP项目维护代码质量的利器。通过合理配置和团队规范,可以显著提升代码可读性和维护效率。建议从基础规则集开始,逐步根据项目特点定制规则,最终形成团队的编码标准。
注意:本文基于php-cs-fixer v3.0版本编写,不同版本可能存在差异。建议定期升级工具版本以获得最新功能和规则支持。 “`
这篇文章共计约3050字,涵盖了php-cs-fixer的安装、配置、使用技巧到高级集成等完整内容,采用Markdown格式编写,包含代码块、表格等结构化元素,便于阅读和理解。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。