ergebnis / php-cs-fixer-config
为 friendsofphp/php-cs-fixer 提供配置工厂和规则集工厂。
Requires
- php: ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-filter: *
- erickskrauch/php-cs-fixer-custom-fixers: ~1.3.0
- friendsofphp/php-cs-fixer: ~3.64.0
- kubawerlos/php-cs-fixer-custom-fixers: ~3.22.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.43.0
- ergebnis/data-provider: ^3.2.0
- ergebnis/license: ^2.4.0
- ergebnis/phpunit-slow-test-detector: ^2.15.0
- ergebnis/rector-rules: ~1.0.1
- fakerphp/faker: ^1.23.1
- infection/infection: ~0.26.6
- phpunit/phpunit: ^9.6.19
- psalm/plugin-phpunit: ~0.19.0
- rector/rector: ^1.2.4
- symfony/filesystem: ^5.0.0 || ^6.0.0
- symfony/process: ^5.0.0 || ^6.0.0
- vimeo/psalm: ^5.25.0
- dev-main
- 6.36.0
- 6.35.0
- 6.34.0
- 6.33.0
- 6.32.0
- 6.31.0
- 6.30.1
- 6.30.0
- 6.29.0
- 6.28.1
- 6.28.0
- 6.27.0
- 6.26.0
- 6.25.1
- 6.25.0
- 6.24.0
- 6.23.0
- 6.22.0
- 6.21.0
- 6.20.0
- 6.19.0
- 6.18.0
- 6.17.0
- 6.16.1
- 6.16.0
- 6.15.0
- 6.14.0
- 6.13.1
- 6.13.0
- 6.12.0
- 6.11.0
- 6.10.0
- 6.9.0
- 6.8.1
- 6.8.0
- 6.7.0
- 6.6.0
- 6.5.0
- 6.4.0
- 6.3.0
- 6.2.0
- 6.1.0
- 6.0.0
- 5.16.0
- 5.15.1
- 5.15.0
- 5.14.2
- 5.14.1
- 5.14.0
- 5.13.0
- 5.12.0
- 5.11.1
- 5.11.0
- 5.10.0
- 5.9.2
- 5.9.1
- 5.9.0
- 5.8.0
- 5.7.0
- 5.6.0
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.0
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.1
- 5.0.0
- 4.11.0
- 4.10.0
- 4.9.0
- 4.8.0
- 4.7.0
- 4.6.0
- 4.5.3
- 4.5.2
- 4.5.1
- 4.5.0
- 4.4.0
- 4.3.0
- 4.2.0
- 4.1.0
- 4.0.0
- 3.4.0
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 2.14.0
- 2.13.1
- 2.13.0
- 2.12.1
- 2.12.0
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.1
- 2.6.0
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.0
- dev-dependabot/composer/vimeo/psalm-5.26.1
This package is auto-updated.
Last update: 2024-09-10 14:00:58 UTC
README
本项目提供了一个包含配置工厂和规则集工厂的 composer
包,用于 friendsofphp/php-cs-fixer
。
安装
运行
composer require --dev ergebnis/php-cs-fixer-config
用法
配置
选择一个规则集
Ergebnis\PhpCsFixer\RuleSet\Php53
Ergebnis\PhpCsFixer\RuleSet\Php54
Ergebnis\PhpCsFixer\RuleSet\Php55
Ergebnis\PhpCsFixer\RuleSet\Php56
Ergebnis\PhpCsFixer\RuleSet\Php70
Ergebnis\PhpCsFixer\RuleSet\Php71
Ergebnis\PhpCsFixer\RuleSet\Php72
Ergebnis\PhpCsFixer\RuleSet\Php73
Ergebnis\PhpCsFixer\RuleSet\Php74
Ergebnis\PhpCsFixer\RuleSet\Php80
Ergebnis\PhpCsFixer\RuleSet\Php81
Ergebnis\PhpCsFixer\RuleSet\Php82
Ergebnis\PhpCsFixer\RuleSet\Php83
在项目根目录创建配置文件 .php-cs-fixer.php
<?php declare(strict_types=1); use Ergebnis\PhpCsFixer\Config; $ruleSet = Config\RuleSet\Php83::create(); $config = Config\Factory::fromRuleSet($ruleSet); $config->getFinder()->in(__DIR__); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php-cs-fixer.cache'); return $config;
Git
所有配置示例都使用缓存功能,如果您也想使用它,请将缓存目录添加到 .gitignore
+ /.build/
/vendor/
使用头部配置规则集
💡 可选:指定一个头部
<?php declare(strict_types=1); use Ergebnis\PhpCsFixer\Config; +$header = <<<EOF +Copyright (c) 2023 Andreas Möller + +For the full copyright and license information, please view +the LICENSE file that was distributed with this source code. + +@see https://github.com/ergebnis/php-cs-fixer-config +EOF; -$ruleSet = Config\RuleSet\Php83::create(); +$ruleSet = Config\RuleSet\Php83::create()->withHeader($header); $config = Config\Factory::fromRuleSet($ruleSet); $config->getFinder()->in(__DIR__); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php-cs-fixer.cache'); return $config;
这将启用并配置 HeaderCommentFixer
,以便在 PHP 文件中添加文件头部,例如
<?php declare(strict_types=1); +/** + * Copyright (c) 2023 Andreas Möller + * + * For the full copyright and license information, please view + * the LICENSE file that was distributed with this source code. + * + * @see https://github.com/ergebnis/php-cs-fixer-config + */
配置一个覆盖规则集
💡 可选:通过传递要合并的规则集合来覆盖规则集的规则
<?php declare(strict_types=1); use Ergebnis\PhpCsFixer\Config; -$ruleSet = Config\RuleSet\Php83::create(); +$ruleSet = Config\RuleSet\Php83::create()->withRules(Config\Rules::fromArray([ + 'mb_str_functions' => false, + 'strict_comparison' => false, +])); $config = Config\Factory::fromRuleSet($ruleSet); $config->getFinder()->in(__DIR__); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php-cs-fixer.cache'); return $config;
配置一个注册并配置自定义修复程序的规则集
💡 可选:注册并配置自定义修复程序的规则
<?php declare(strict_types=1); use Ergebnis\PhpCsFixer\Config; use FooBar\Fixer; -$ruleSet = Config\RuleSet\Php83::create(); +$ruleSet = Config\RuleSet\Php83::create() + ->withCustomFixers(Config\Fixers::fromFixers( + new Fixer\BarBazFixer(), + new Fixer\QuzFixer(), + )) + ->withRules(Config\Rules::fromArray([ + 'FooBar/bar_baz' => true, + 'FooBar/quz' => [ + 'qux => false, + ], + ])) +]); $config = Config\Factory::fromRuleSet($ruleSet); $config->getFinder()->in(__DIR__); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php-cs-fixer.cache'); return $config;
Makefile
如果您喜欢 Makefile
,创建一个包含 coding-standards
目标的 Makefile
+.PHONY: coding-standards +coding-standards: vendor + mkdir -p .build/php-cs-fixer + vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --show-progress=dots --verbose vendor: composer.json composer.lock composer validate composer install
运行
make coding-standards
以自动修复编码标准违规。
Composer 脚本
如果您喜欢 composer
脚本,将 coding-standards
脚本添加到 composer.json
{ "name": "foo/bar", "require": { "php": "^8.1", }, "require-dev": { "ergebnis/php-cs-fixer-config": "^6.21.0" + }, + "scripts": { + "coding-standards": [ + "mkdir -p .build/php-cs-fixer", + "php-cs-fixer fix --diff --show-progress=dots --verbose" + ] } }
运行
composer coding-standards
以自动修复编码标准违规。
GitHub Actions
如果您喜欢 GitHub Actions,将 coding-standards
任务添加到您的流程中
on: pull_request: null push: branches: - main name: "Integrate" jobs: + coding-standards: + name: "Coding Standards" + + runs-on: ubuntu-latest + + strategy: + matrix: + php-version: + - "8.1" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Set up PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + + - name: "Cache dependencies installed with composer" + uses: "actions/cache@v2" + with: + path: "~/.composer/cache" + key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}" + restore-keys: "php-${{ matrix.php-version }}-composer-" + + - name: "Install locked dependencies with composer" + run: "composer install --ansi --no-interaction --no-progress --no-suggest" + + - name: "Create cache directory for friendsofphp/php-cs-fixer" + run: mkdir -p .build/php-cs-fixer + + - name: "Cache cache directory for friendsofphp/php-cs-fixer" + uses: "actions/cache@v2" + with: + path: "~/.build/php-cs-fixer" + key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.ref_name }}" + restore-keys: | + php-${{ matrix.php-version }}-php-cs-fixer-main + php-${{ matrix.php-version }}-php-cs-fixer- + + - name: "Run friendsofphp/php-cs-fixer" + run: "vendor/bin/php-cs-fixer fix --ansi --config=.php-cs-fixer.php --diff --dry-run --show-progress=dots --verbose"
变更日志
本项目维护者将此项目的显著更改记录在 变更日志 中。
贡献
本项目维护者建议遵循 贡献指南。
行为准则
本项目维护者要求贡献者遵守 行为准则。
一般支持策略
本项目提供有限的支持。
您可以通过 赞助 @localheinz 或 为此项目相关的服务请求发票 来支持此项目的维护。
PHP 版本支持策略
本项目支持具有 活动和安全支持 的 PHP 版本。
本项目维护者在其初始发布后添加对 PHP 版本的支持,并在其达到安全支持的结束阶段时取消对该 PHP 版本的支持。
安全策略
本项目有一个安全策略。
许可证
本项目使用MIT许可证。
致谢
本项目受到localheinz/php-cs-fixer-config
的启发,并取代了它。
本项目需要并启用了以下包中的自定义修复器
社交
关注Twitter上的@localheinz和@ergebnis。