juliangut / php-cs-fixer-config
php-cs-fixer 配置
1.8.0
2023-01-13 16:21 UTC
Requires
- php: ^7.4|^8.0
- friendsofphp/php-cs-fixer: ^3.1
- kubawerlos/php-cs-fixer-custom-fixers: ^3.7
- nikic/php-parser: ^4.7
- pedrotroller/php-cs-custom-fixer: ^2.25
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ~0.7
- grifart/phpstan-oneline: ~0.4
- overtrue/phplint: ^3.0|^4.0
- phpcompatibility/php-compatibility: ^9.3
- phpmd/phpmd: ^2.10
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.7
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- povils/phpmnd: ^2.5|^3.0
- roave/security-advisories: dev-master
- sebastian/phpcpd: ^6.0
- slevomat/coding-standard: ^8.0
- squizlabs/php_codesniffer: ^3.6
- thecodingmachine/phpstan-strict-rules: ^1.0
README
php-cs-fixer-config
作为可以的意见,为 PHP-CS-Fixer 提供默认配置
PHPUnit 的配置假设使用版本 8.4 或更高
安装
Composer
composer require --dev juliangut/php-cs-fixer-config
使用
在项目根目录创建 .php-cs-fixer.php
文件
<?php use Jgut\CS\Fixer\FixerConfig80; use PhpCsFixer\Finder; $finder = Finder::create() ->ignoreDotFiles(false) ->exclude(['vendor']) ->in(__DIR__) ->name('.php-cs-fixer.php'); return (new FixerConfig80()) ->setFinder($finder);
根据您想支持的 PHP 版本使用提供的配置之一
Jgut\CS\Fixer\FixerConfig73
,PHP >= 7.3Jgut\CS\Fixer\FixerConfig74
,PHP >= 7.4Jgut\CS\Fixer\FixerConfig80
,PHP >= 8.0Jgut\CS\Fixer\FixerConfig81
,PHP >= 8.1
将 .php-cs-fixer.cache
添加到您的 .gitignore
文件
配置
头部
提供头部字符串,它将被添加到由 php-cs-fixer 分析的每个文件的开头。
字符串 {{year}}
将被替换为当前年份,字符串 {{package}}
将被替换为您的包名
return (new FixerConfig80()) ->setHeader(<<<'HEADER' (c) 2021-{{year}} Julián Gutiérrez <juliangut@gmail.com> This file is part of package {{package}} HEADER);
--- Original +++ New <?php +/* + * (c) 2021-2022 Julián Gutiérrez <juliangut@gmail.com> + * + * This file is part of package juliangut/php-cs-fixer-config + */ + declare(strict_types=1); namespace App;
PHPUnit
如果您使用 PHPUnit
return (new FixerConfig80()) ->enablePhpUnitRules();
Doctrine
如果您使用 Doctrine
return (new FixerConfig80()) ->enableDoctrineRules();
类型推断
如果您正在进行“类型提示一切”的过程,尝试启用类型推断规则,并让 php-cs-fixer 将类型从注释迁移到属性、参数和返回类型
请注意 这些规则是实验性的,修复后需要人工监督,因此建议您不要永久启用类型推断
return (new FixerConfig80()) ->enableTypeInferRules();
--- Original +++ New <?php declare(strict_types=1); namespace App; class Foo { - /** - * @var string|null - */ - protected $foo + protected ?string $foo - /** - * @var Bar - */ - protected $bar + protected Bar $bar - /** - * @var bool - */ - protected $baz + protected bool $baz /** * Foo constructor. - * - * @param string|null $foo - * @param Bar $bar - * @param bool $baz */ - public function __construct($foo, $bar, $baz = false) + public function __construct(?string $foo, Bar $bar, bool $baz = false) { $this->foo = $foo; $this->bar = $bar; $this->baz = $baz; } - /** - * @return bool - * - public function isBaz() + public function isBaz(): bool { return $this->baz; } }
其他规则
如果您需要添加一些其他规则,这些规则可以是新的或覆盖已设置的规则,最简单的方法是使用 setAdditionalRules
方法
最好通过类名识别修复器,尽管使用修复器名称也可以
use Jgut\CS\Fixer\FixerConfig80; use PhpCsFixer\Fixer\FunctionNotation\SingleLineThrowFixer; return (new FixerConfig80()) ->setAdditionalRules([ SingleLineThrowFixer::class => true, // Preferred way 'single_line_throw' => true, // Same as above ]);
自定义修复器配置
如果您需要更多控制应用的规则或更喜欢更干净的设置,您可以轻松创建自定义修复器配置而不是设置额外的规则
use Jgut\CS\Fixer\FixerConfig81; use PhpCsFixer\Fixer\FunctionNotation\SingleLineThrowFixer; class CustomFixerConfig extends FixerConfig81 { protected function getFixerRules(): array { // Return your custom rules, or add/remove rules from parent's getFixerRules() return array_merge( parent::getFixerRules(), [ SingleLineThrowFixer::class => true, // Preferred way 'single_line_throw' => true, // Same as above ] ); } }
贡献
发现了一个错误或有一个功能请求? 请打开一个新问题。在提交之前查看现有的问题。
请参阅文件 CONTRIBUTING.md
许可证
有关许可证条款的副本,请参阅源代码中包含的文件 LICENSE