erickskrauch / php-cs-fixer-custom-fixers
PHP-CS-Fixer的自定义修复器集合
Requires
- php: ^7.4 || ^8.0
- friendsofphp/php-cs-fixer: ^3
Requires (Dev)
- ely/php-code-style: ^1
- ergebnis/composer-normalize: ^2.28
- php-cs-fixer/phpunit-constraint-isidenticalstring: ^1.2
- phpspec/prophecy: ^1.15
- phpspec/prophecy-phpunit: ^2.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.11.x-dev
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^9.5
- phpunitgoodpractices/polyfill: ^1.5
- phpunitgoodpractices/traits: ^1.9.1
- symfony/phpunit-bridge: ^6.0
README
为PHP-CS-Fixer提供一系列自定义修复器。
安装
运行
composer require --dev erickskrauch/php-cs-fixer-custom-fixers
然后在您的配置文件(.php-cs-fixer.php
)中注册修复器并使用它们
<?php return (new \PhpCsFixer\Config()) ->registerCustomFixers(new \ErickSkrauch\PhpCsFixer\Fixers()) ->setRules([ 'ErickSkrauch/align_multiline_parameters' => true, // See the rest of the fixers below ]);
修复器
目录
ErickSkrauch/align_multiline_parameters
- 对多行函数参数进行对齐(或移除对齐)。ErickSkrauch/blank_line_around_class_body
- 在类体内部添加空行。ErickSkrauch/blank_line_before_return
- 在return
前添加空行。ErickSkrauch/line_break_after_statements
- 在控制结构之后添加空行。ErickSkrauch/multiline_if_statement_braces
- 修复多行if
语句的大括号位置。ErickSkrauch/ordered_overrides
- 对重写的方法进行排序。ErickSkrauch/remove_class_name_method_usages
- 将::className()
替换为:class
(Yii2)。
ErickSkrauch/align_multiline_parameters
强制对多行函数参数进行对齐或不对齐
--- Original +++ New @@ @@ function foo( string $string, - int $index = 0, - $arg = 'no type', - ...$variadic, + int $index = 0, + $arg = 'no type', + ...$variadic ): void {}
配置
-
variables
- 当设置为true
时,强制变量对齐。在false
上强制严格不对齐。您可以将其设置为null
以禁用变量修改。默认值:true
。 -
defaults
- 当设置为true
时,强制默认值对齐。在false
上强制严格不对齐。您可以将其设置为null
以禁用默认值修改。默认值:false
。
ErickSkrauch/blank_line_around_class_body
确保类体在其定义之后和结束之前包含一个空行
--- Original +++ New @@ @@ <?php class Test { + public function func() { $obj = new class extends Foo { + public $prop; + } } + }
配置
-
apply_to_anonymous_classes
- 此修复器是否应用于匿名类?如果设置为false
,则匿名类将被修复,使其体周围没有空行。默认值:true
。 -
blank_lines_count
- 调整空行的数量。默认值:1
。
ErickSkrauch/blank_line_before_return
这是原始blank_line_before_statement
修复器的扩展版本。它仅适用于return
语句,并且仅在当前嵌套级别有多个语句的情况下。
--- Original +++ New @@ @@ <?php public function foo() { $a = 'this'; $b = 'is'; + return "$a $b awesome"; } public function bar() { $this->foo(); return 'okay'; }
ErickSkrauch/line_break_after_statements
确保在下一个语句(if
、switch
、for
、foreach
、while
、do-while
和try-catch-finally
)上方有一个空行。
--- Original +++ New @@ @@ <?php $a = 123; if ($a === 123) { // Do something here } + $b = [1, 2, 3]; foreach ($b as $number) { if ($number === 3) { echo 'it is three!'; } } + $c = 'next statement';
ErickSkrauch/multiline_if_statement_braces
确保多行if语句体的大括号放在正确的行上。
--- Original +++ New @@ @@ <?php if ($condition1 === 123 - && $condition2 = 321) { + && $condition2 = 321 +) { // Do something here }
配置
keep_on_own_line
- 是否将关闭括号放在自己的行上?如果设置为false
,则大括号将放在最后一个条件语句之后。默认值:true
。
ErickSkrauch/ordered_overrides
重写和实现的方法必须按它们在父类中定义的顺序进行排序。
--- Original +++ New @@ @@ <?php class Foo implements Serializable { - public function unserialize($data) {} + public function serialize() {} - public function serialize() {} + public function unserialize($data) {} }
注意事项
-
此修复器基于PHP-CS-Fixer原则实现,依赖运行时、类自动加载和反射。如果依赖项缺失或自动加载器配置不正确,修复器将无法发现父类中方法的顺序。
-
修复器优先处理
extends
,之后应用implements
。它搜索类的最深父类并将它们作为排序的基础,忽略后续的重新排序。 -
此修复器在
ordered_interfaces
修复器之前运行,因此当您使用此修复器时,可能需要运行PHP-CS-Fixer两次才能得到正确的结果。有关更多信息,请参阅此讨论。
ErickSkrauch/remove_class_name_method_usages
(Yii2)
用PHP 5.5中引入的本地::class
关键字替换Yii2的BaseObject::className()
使用。
--- Original +++ New @@ @@ <?php use common\models\User; - $className = User::className(); + $className = User::class;