Skip to content

Commit 91e7c98

Browse files
Fixes #12. Add trait for compatibility with PHP-CS-Fixer 3.59.3 (#14)
* Add trait for compatibility with 3.59.2 and 3.59.3 * Cleanup solution and add note about why this hack has been introduced * Suppress PHPStan for method_exists call --------- Co-authored-by: ErickSkrauch <[email protected]>
1 parent 1c1c04b commit 91e7c98

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace ErickSkrauch\PhpCsFixer\Fixer;
5+
6+
use PhpCsFixer\AbstractFixer;
7+
8+
// PHP-CS-Fixer 3.59.3 has changed implementation of the AbstractFixer by removing method `configure` from it
9+
// and introducing a separate trait \PhpCsFixer\Fixer\ConfigurableFixerTrait with this method inside.
10+
// To mitigate these changes and maintain compatibility with older versions of PHP-CS-Fixer, this solution was created.
11+
//
12+
// Commit: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/commit/064efa1f#diff-e1fb45756cd1d53b6d67072d8a026692c07af55617018229b0bf4ab6c22e3e53L105
13+
// See https://github.com/erickskrauch/php-cs-fixer-custom-fixers/issues/12
14+
// @phpstan-ignore-next-line sometimes it exists, sometime it's not ;)
15+
if (method_exists(AbstractFixer::class, 'configure')) {
16+
trait ConfigurableFixerTrait {
17+
18+
}
19+
} else {
20+
trait ConfigurableFixerTrait {
21+
use \PhpCsFixer\Fixer\ConfigurableFixerTrait;
22+
23+
}
24+
}

src/Fixer/FunctionNotation/AlignMultilineParametersFixer.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
namespace ErickSkrauch\PhpCsFixer\Fixer\FunctionNotation;
55

66
use ErickSkrauch\PhpCsFixer\Fixer\AbstractFixer;
7+
use ErickSkrauch\PhpCsFixer\Fixer\ConfigurableFixerTrait;
78
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
89
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
910
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
@@ -34,6 +35,7 @@
3435
* }
3536
*/
3637
final class AlignMultilineParametersFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface {
38+
use ConfigurableFixerTrait;
3739

3840
/**
3941
* @internal

src/Fixer/Whitespace/BlankLineAroundClassBodyFixer.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
namespace ErickSkrauch\PhpCsFixer\Fixer\Whitespace;
55

66
use ErickSkrauch\PhpCsFixer\Fixer\AbstractFixer;
7+
use ErickSkrauch\PhpCsFixer\Fixer\ConfigurableFixerTrait;
78
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
89
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
910
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
@@ -31,6 +32,7 @@
3132
* } $configuration
3233
*/
3334
final class BlankLineAroundClassBodyFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface {
35+
use ConfigurableFixerTrait;
3436

3537
/**
3638
* @internal

src/Fixer/Whitespace/MultilineIfStatementBracesFixer.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
namespace ErickSkrauch\PhpCsFixer\Fixer\Whitespace;
55

66
use ErickSkrauch\PhpCsFixer\Fixer\AbstractFixer;
7+
use ErickSkrauch\PhpCsFixer\Fixer\ConfigurableFixerTrait;
78
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
89
use PhpCsFixer\Fixer\WhitespacesAwareFixerInterface;
910
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolver;
@@ -23,6 +24,7 @@
2324
* } $configuration
2425
*/
2526
final class MultilineIfStatementBracesFixer extends AbstractFixer implements ConfigurableFixerInterface, WhitespacesAwareFixerInterface {
27+
use ConfigurableFixerTrait;
2628

2729
/**
2830
* @internal

0 commit comments

Comments
 (0)