diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php
index 92f81bd..8e04040 100644
--- a/.php-cs-fixer.dist.php
+++ b/.php-cs-fixer.dist.php
@@ -2,9 +2,10 @@
declare(strict_types=1);
+use PhpCsFixer\Finder;
use VisualCraft\PhpCsFixerConfig;
-$finder = PhpCsFixer\Finder::create()
+$finder = Finder::create()
->in(__DIR__ . '/src')
->append([
__DIR__ . '/.php-cs-fixer.dist.php',
diff --git a/README.md b/README.md
index 12a3fa7..510a222 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,7 @@ Pick one of the rule sets:
* [`VisualCraft\PhpCsFixerConfig\RuleSet\Php81`](src/RuleSet/Php81.php)
* [`VisualCraft\PhpCsFixerConfig\RuleSet\Php82`](src/RuleSet/Php82.php)
* [`VisualCraft\PhpCsFixerConfig\RuleSet\Php83`](src/RuleSet/Php83.php)
+* [`VisualCraft\PhpCsFixerConfig\RuleSet\Php84`](src/RuleSet/Php84.php)
Create a configuration file `.php-cs-fixer.dist.php` in the root of your project:
@@ -37,7 +38,7 @@ $finder = PhpCsFixer\Finder::create()
])
;
-$config = PhpCsFixerConfig\Factory::fromRuleSet(new PhpCsFixerConfig\RuleSet\Php83());
+$config = PhpCsFixerConfig\Factory::fromRuleSet(new PhpCsFixerConfig\RuleSet\Php84());
$config
->setFinder($finder)
->setCacheFile(__DIR__ . '/.php-cs-fixer.cache')
@@ -66,8 +67,8 @@ Optionally override rules from a rule set by passing in an array of rules to be
])
;
--$config = PhpCsFixerConfig\Factory::fromRuleSet(new PhpCsFixerConfig\RuleSet\Php83());
-+$config = PhpCsFixerConfig\Factory::fromRuleSet(new PhpCsFixerConfig\RuleSet\Php83(), [
+-$config = PhpCsFixerConfig\Factory::fromRuleSet(new PhpCsFixerConfig\RuleSet\Php84());
++$config = PhpCsFixerConfig\Factory::fromRuleSet(new PhpCsFixerConfig\RuleSet\Php84(), [
+ 'strict_comparison' => false,
+]);
$config
diff --git a/composer.json b/composer.json
index 49f9902..12ea453 100644
--- a/composer.json
+++ b/composer.json
@@ -11,13 +11,13 @@
],
"require": {
"php": "^7.4 || ^8.0",
- "friendsofphp/php-cs-fixer": "^3.34",
- "kubawerlos/php-cs-fixer-custom-fixers": "^3.16",
- "pedrotroller/php-cs-custom-fixer": "^2.28"
+ "friendsofphp/php-cs-fixer": "^3.87",
+ "kubawerlos/php-cs-fixer-custom-fixers": "^3.34",
+ "pedrotroller/php-cs-custom-fixer": "^2.34"
},
"require-dev": {
- "ergebnis/composer-normalize": "^2.25",
- "vimeo/psalm": "^4.22"
+ "ergebnis/composer-normalize": "^2.48",
+ "vimeo/psalm": "^6.13"
},
"minimum-stability": "stable",
"prefer-stable": true,
diff --git a/psalm.xml b/psalm.xml
index adbf7e7..0f79de1 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -19,5 +19,6 @@
+
diff --git a/src/Factory.php b/src/Factory.php
index 2162350..7a9e32d 100644
--- a/src/Factory.php
+++ b/src/Factory.php
@@ -9,7 +9,7 @@
final class Factory
{
/**
- * @psalm-param array $overrideRules
+ * @psalm-param array|bool> $overrideRules
*/
public static function fromRuleSet(RuleSetInterface $ruleSet, array $overrideRules = []): Config
{
diff --git a/src/RuleSet/Php74.php b/src/RuleSet/Php74.php
index a44687d..276f7a8 100644
--- a/src/RuleSet/Php74.php
+++ b/src/RuleSet/Php74.php
@@ -4,15 +4,35 @@
namespace VisualCraft\PhpCsFixerConfig\RuleSet;
+use PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer;
+use PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer;
+use PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer;
+use PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer;
+use PhpCsFixerCustomFixers\Fixers;
use VisualCraft\PhpCsFixerConfig\RuleSetInterface;
final class Php74 implements RuleSetInterface
{
+ #[\Override]
public function name(): string
{
return 'Visual Craft (PHP 7.4)';
}
+ #[\Override]
public function rules(): array
{
return [
@@ -68,39 +88,37 @@ public function rules(): array
'while',
],
],
- \PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer::name() => true,
+ CommentSurroundedBySpacesFixer::name() => true,
+ MultilineCommentOpeningClosingAloneFixer::name() => true,
+ NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
+ NoDuplicatedImportsFixer::name() => true,
+ NoImportFromGlobalNamespaceFixer::name() => true,
+ NoLeadingSlashInGlobalNamespaceFixer::name() => true,
+ NoNullableBooleanTypeFixer::name() => true,
+ NoPhpStormGeneratedCommentFixer::name() => true,
+ NoSuperfluousConcatenationFixer::name() => true,
+ NoUselessCommentFixer::name() => true,
+ NoUselessDoctrineRepositoryCommentFixer::name() => true,
+ NoUselessParenthesisFixer::name() => true,
+ NoUselessStrlenFixer::name() => true,
+ PhpdocNoSuperfluousParamFixer::name() => true,
+ PhpdocTypesTrimFixer::name() => true,
+ SingleSpaceAfterStatementFixer::name() => true,
+ SingleSpaceBeforeStatementFixer::name() => true,
'PedroTroller/ordered_with_getter_and_setter_first' => true,
- 'PedroTroller/line_break_between_method_arguments' => [
- 'max-args' => false,
- 'max-length' => 120,
- 'automatic-argument-merge' => true,
- ],
'PedroTroller/line_break_between_statements' => true,
+ 'method_chaining_indentation' => false,
];
}
+ #[\Override]
public function getCustomFixers(): iterable
{
- yield from new \PhpCsFixerCustomFixers\Fixers();
+ yield from new Fixers();
yield from new \PedroTroller\CS\Fixer\Fixers();
}
+ #[\Override]
public function getRiskyAllowed(): bool
{
return true;
diff --git a/src/RuleSet/Php80.php b/src/RuleSet/Php80.php
index e9c5cf8..6ccdd90 100644
--- a/src/RuleSet/Php80.php
+++ b/src/RuleSet/Php80.php
@@ -4,15 +4,40 @@
namespace VisualCraft\PhpCsFixerConfig\RuleSet;
+use PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer;
+use PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer;
+use PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer;
+use PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDirnameCallFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitDedicatedAssertFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitNoUselessReturnFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\StringableInterfaceFixer;
+use PhpCsFixerCustomFixers\Fixers;
use VisualCraft\PhpCsFixerConfig\RuleSetInterface;
final class Php80 implements RuleSetInterface
{
+ #[\Override]
public function name(): string
{
return 'Visual Craft (PHP 8.0)';
}
+ #[\Override]
public function rules(): array
{
return [
@@ -68,44 +93,42 @@ public function rules(): array
'while',
],
],
- \PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDirnameCallFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitDedicatedAssertFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitNoUselessReturnFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\StringableInterfaceFixer::name() => true,
+ CommentSurroundedBySpacesFixer::name() => true,
+ MultilineCommentOpeningClosingAloneFixer::name() => true,
+ NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
+ NoDuplicatedImportsFixer::name() => true,
+ NoImportFromGlobalNamespaceFixer::name() => true,
+ NoLeadingSlashInGlobalNamespaceFixer::name() => true,
+ NoNullableBooleanTypeFixer::name() => true,
+ NoPhpStormGeneratedCommentFixer::name() => true,
+ NoSuperfluousConcatenationFixer::name() => true,
+ NoUselessCommentFixer::name() => true,
+ NoUselessDirnameCallFixer::name() => true,
+ NoUselessDoctrineRepositoryCommentFixer::name() => true,
+ NoUselessParenthesisFixer::name() => true,
+ NoUselessStrlenFixer::name() => true,
+ PhpUnitAssertArgumentsOrderFixer::name() => true,
+ PhpUnitDedicatedAssertFixer::name() => true,
+ PhpUnitNoUselessReturnFixer::name() => true,
+ PhpdocNoSuperfluousParamFixer::name() => true,
+ PhpdocTypesTrimFixer::name() => true,
+ SingleSpaceAfterStatementFixer::name() => true,
+ SingleSpaceBeforeStatementFixer::name() => true,
+ StringableInterfaceFixer::name() => true,
'PedroTroller/ordered_with_getter_and_setter_first' => true,
- 'PedroTroller/line_break_between_method_arguments' => [
- 'max-args' => false,
- 'max-length' => 120,
- 'automatic-argument-merge' => true,
- ],
'PedroTroller/line_break_between_statements' => true,
+ 'method_chaining_indentation' => false,
];
}
+ #[\Override]
public function getCustomFixers(): iterable
{
- yield from new \PhpCsFixerCustomFixers\Fixers();
+ yield from new Fixers();
yield from new \PedroTroller\CS\Fixer\Fixers();
}
+ #[\Override]
public function getRiskyAllowed(): bool
{
return true;
diff --git a/src/RuleSet/Php81.php b/src/RuleSet/Php81.php
index fde1328..d4d66b3 100644
--- a/src/RuleSet/Php81.php
+++ b/src/RuleSet/Php81.php
@@ -4,15 +4,40 @@
namespace VisualCraft\PhpCsFixerConfig\RuleSet;
+use PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer;
+use PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer;
+use PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer;
+use PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDirnameCallFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitDedicatedAssertFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitNoUselessReturnFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\StringableInterfaceFixer;
+use PhpCsFixerCustomFixers\Fixers;
use VisualCraft\PhpCsFixerConfig\RuleSetInterface;
final class Php81 implements RuleSetInterface
{
+ #[\Override]
public function name(): string
{
return 'Visual Craft (PHP 8.1)';
}
+ #[\Override]
public function rules(): array
{
return [
@@ -68,44 +93,42 @@ public function rules(): array
'while',
],
],
- \PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDirnameCallFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitDedicatedAssertFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitNoUselessReturnFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\StringableInterfaceFixer::name() => true,
+ CommentSurroundedBySpacesFixer::name() => true,
+ MultilineCommentOpeningClosingAloneFixer::name() => true,
+ NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
+ NoDuplicatedImportsFixer::name() => true,
+ NoImportFromGlobalNamespaceFixer::name() => true,
+ NoLeadingSlashInGlobalNamespaceFixer::name() => true,
+ NoNullableBooleanTypeFixer::name() => true,
+ NoPhpStormGeneratedCommentFixer::name() => true,
+ NoSuperfluousConcatenationFixer::name() => true,
+ NoUselessCommentFixer::name() => true,
+ NoUselessDirnameCallFixer::name() => true,
+ NoUselessDoctrineRepositoryCommentFixer::name() => true,
+ NoUselessParenthesisFixer::name() => true,
+ NoUselessStrlenFixer::name() => true,
+ PhpUnitAssertArgumentsOrderFixer::name() => true,
+ PhpUnitDedicatedAssertFixer::name() => true,
+ PhpUnitNoUselessReturnFixer::name() => true,
+ PhpdocNoSuperfluousParamFixer::name() => true,
+ PhpdocTypesTrimFixer::name() => true,
+ SingleSpaceAfterStatementFixer::name() => true,
+ SingleSpaceBeforeStatementFixer::name() => true,
+ StringableInterfaceFixer::name() => true,
'PedroTroller/ordered_with_getter_and_setter_first' => true,
- 'PedroTroller/line_break_between_method_arguments' => [
- 'max-args' => false,
- 'max-length' => 120,
- 'automatic-argument-merge' => true,
- ],
'PedroTroller/line_break_between_statements' => true,
+ 'method_chaining_indentation' => false,
];
}
+ #[\Override]
public function getCustomFixers(): iterable
{
- yield from new \PhpCsFixerCustomFixers\Fixers();
+ yield from new Fixers();
yield from new \PedroTroller\CS\Fixer\Fixers();
}
+ #[\Override]
public function getRiskyAllowed(): bool
{
return true;
diff --git a/src/RuleSet/Php82.php b/src/RuleSet/Php82.php
index a6cbd8b..3106836 100644
--- a/src/RuleSet/Php82.php
+++ b/src/RuleSet/Php82.php
@@ -4,15 +4,40 @@
namespace VisualCraft\PhpCsFixerConfig\RuleSet;
+use PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer;
+use PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer;
+use PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer;
+use PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDirnameCallFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitDedicatedAssertFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitNoUselessReturnFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\StringableInterfaceFixer;
+use PhpCsFixerCustomFixers\Fixers;
use VisualCraft\PhpCsFixerConfig\RuleSetInterface;
final class Php82 implements RuleSetInterface
{
+ #[\Override]
public function name(): string
{
return 'Visual Craft (PHP 8.2)';
}
+ #[\Override]
public function rules(): array
{
return [
@@ -68,44 +93,42 @@ public function rules(): array
'while',
],
],
- \PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDirnameCallFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitDedicatedAssertFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitNoUselessReturnFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\StringableInterfaceFixer::name() => true,
+ CommentSurroundedBySpacesFixer::name() => true,
+ MultilineCommentOpeningClosingAloneFixer::name() => true,
+ NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
+ NoDuplicatedImportsFixer::name() => true,
+ NoImportFromGlobalNamespaceFixer::name() => true,
+ NoLeadingSlashInGlobalNamespaceFixer::name() => true,
+ NoNullableBooleanTypeFixer::name() => true,
+ NoPhpStormGeneratedCommentFixer::name() => true,
+ NoSuperfluousConcatenationFixer::name() => true,
+ NoUselessCommentFixer::name() => true,
+ NoUselessDirnameCallFixer::name() => true,
+ NoUselessDoctrineRepositoryCommentFixer::name() => true,
+ NoUselessParenthesisFixer::name() => true,
+ NoUselessStrlenFixer::name() => true,
+ PhpUnitAssertArgumentsOrderFixer::name() => true,
+ PhpUnitDedicatedAssertFixer::name() => true,
+ PhpUnitNoUselessReturnFixer::name() => true,
+ PhpdocNoSuperfluousParamFixer::name() => true,
+ PhpdocTypesTrimFixer::name() => true,
+ SingleSpaceAfterStatementFixer::name() => true,
+ SingleSpaceBeforeStatementFixer::name() => true,
+ StringableInterfaceFixer::name() => true,
'PedroTroller/ordered_with_getter_and_setter_first' => true,
- 'PedroTroller/line_break_between_method_arguments' => [
- 'max-args' => false,
- 'max-length' => 120,
- 'automatic-argument-merge' => true,
- ],
'PedroTroller/line_break_between_statements' => true,
+ 'method_chaining_indentation' => false,
];
}
+ #[\Override]
public function getCustomFixers(): iterable
{
- yield from new \PhpCsFixerCustomFixers\Fixers();
+ yield from new Fixers();
yield from new \PedroTroller\CS\Fixer\Fixers();
}
+ #[\Override]
public function getRiskyAllowed(): bool
{
return true;
diff --git a/src/RuleSet/Php83.php b/src/RuleSet/Php83.php
index 58a28fa..d5bd904 100644
--- a/src/RuleSet/Php83.php
+++ b/src/RuleSet/Php83.php
@@ -4,15 +4,40 @@
namespace VisualCraft\PhpCsFixerConfig\RuleSet;
+use PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer;
+use PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer;
+use PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer;
+use PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer;
+use PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDirnameCallFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer;
+use PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitDedicatedAssertFixer;
+use PhpCsFixerCustomFixers\Fixer\PhpUnitNoUselessReturnFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer;
+use PhpCsFixerCustomFixers\Fixer\StringableInterfaceFixer;
+use PhpCsFixerCustomFixers\Fixers;
use VisualCraft\PhpCsFixerConfig\RuleSetInterface;
final class Php83 implements RuleSetInterface
{
+ #[\Override]
public function name(): string
{
return 'Visual Craft (PHP 8.3)';
}
+ #[\Override]
public function rules(): array
{
return [
@@ -68,44 +93,42 @@ public function rules(): array
'while',
],
],
- \PhpCsFixerCustomFixers\Fixer\CommentSurroundedBySpacesFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\MultilineCommentOpeningClosingAloneFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoDuplicatedImportsFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoLeadingSlashInGlobalNamespaceFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoNullableBooleanTypeFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoPhpStormGeneratedCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDirnameCallFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessDoctrineRepositoryCommentFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitDedicatedAssertFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpUnitNoUselessReturnFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocNoSuperfluousParamFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\PhpdocTypesTrimFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\SingleSpaceBeforeStatementFixer::name() => true,
- \PhpCsFixerCustomFixers\Fixer\StringableInterfaceFixer::name() => true,
+ CommentSurroundedBySpacesFixer::name() => true,
+ MultilineCommentOpeningClosingAloneFixer::name() => true,
+ NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
+ NoDuplicatedImportsFixer::name() => true,
+ NoImportFromGlobalNamespaceFixer::name() => true,
+ NoLeadingSlashInGlobalNamespaceFixer::name() => true,
+ NoNullableBooleanTypeFixer::name() => true,
+ NoPhpStormGeneratedCommentFixer::name() => true,
+ NoSuperfluousConcatenationFixer::name() => true,
+ NoUselessCommentFixer::name() => true,
+ NoUselessDirnameCallFixer::name() => true,
+ NoUselessDoctrineRepositoryCommentFixer::name() => true,
+ NoUselessParenthesisFixer::name() => true,
+ NoUselessStrlenFixer::name() => true,
+ PhpUnitAssertArgumentsOrderFixer::name() => true,
+ PhpUnitDedicatedAssertFixer::name() => true,
+ PhpUnitNoUselessReturnFixer::name() => true,
+ PhpdocNoSuperfluousParamFixer::name() => true,
+ PhpdocTypesTrimFixer::name() => true,
+ SingleSpaceAfterStatementFixer::name() => true,
+ SingleSpaceBeforeStatementFixer::name() => true,
+ StringableInterfaceFixer::name() => true,
'PedroTroller/ordered_with_getter_and_setter_first' => true,
- 'PedroTroller/line_break_between_method_arguments' => [
- 'max-args' => false,
- 'max-length' => 120,
- 'automatic-argument-merge' => true,
- ],
'PedroTroller/line_break_between_statements' => true,
+ 'method_chaining_indentation' => false,
];
}
+ #[\Override]
public function getCustomFixers(): iterable
{
- yield from new \PhpCsFixerCustomFixers\Fixers();
+ yield from new Fixers();
yield from new \PedroTroller\CS\Fixer\Fixers();
}
+ #[\Override]
public function getRiskyAllowed(): bool
{
return true;
diff --git a/src/RuleSet/Php84.php b/src/RuleSet/Php84.php
new file mode 100644
index 0000000..1cee03d
--- /dev/null
+++ b/src/RuleSet/Php84.php
@@ -0,0 +1,137 @@
+|bool>
+ */
+ #[\Override]
+ public function rules(): array
+ {
+ return [
+ '@Symfony' => true,
+ '@Symfony:risky' => true,
+ '@PHP84Migration' => true,
+ '@PHP82Migration:risky' => true,
+ '@PhpCsFixer' => true,
+ '@PhpCsFixer:risky' => true,
+ '@PHPUnit100Migration:risky' => true,
+ 'php_unit_test_class_requires_covers' => false,
+ 'php_unit_test_case_static_method_calls' => ['call_type' => 'this'],
+ 'array_syntax' => [
+ 'syntax' => 'short',
+ ],
+ 'class_attributes_separation' => ['elements' => ['method' => 'one', 'property' => 'one']],
+ 'concat_space' => ['spacing' => 'one'],
+ 'phpdoc_align' => false,
+ 'phpdoc_separation' => false,
+ 'phpdoc_to_comment' => false,
+ 'phpdoc_add_missing_param_annotation' => false,
+ 'phpdoc_types_order' => [
+ 'null_adjustment' => 'always_last',
+ ],
+ 'increment_style' => false,
+ 'yoda_style' => ['equal' => false, 'identical' => false, 'less_and_greater' => false],
+ 'fopen_flags' => false,
+ 'return_assignment' => false,
+ 'final_internal_class' => false,
+ 'blank_line_before_statement' => [
+ 'statements' => [
+ 'break',
+ 'case',
+ 'continue',
+ 'declare',
+ 'default',
+ 'do',
+ 'exit',
+ 'for',
+ 'foreach',
+ 'goto',
+ 'if',
+ 'include',
+ 'include_once',
+ 'require',
+ 'require_once',
+ 'return',
+ 'switch',
+ 'throw',
+ 'try',
+ 'while',
+ ],
+ ],
+ CommentSurroundedBySpacesFixer::name() => true,
+ MultilineCommentOpeningClosingAloneFixer::name() => true,
+ NoDoctrineMigrationsGeneratedCommentFixer::name() => true,
+ NoDuplicatedImportsFixer::name() => true,
+ NoImportFromGlobalNamespaceFixer::name() => true,
+ NoLeadingSlashInGlobalNamespaceFixer::name() => true,
+ NoNullableBooleanTypeFixer::name() => true,
+ NoPhpStormGeneratedCommentFixer::name() => true,
+ NoSuperfluousConcatenationFixer::name() => true,
+ NoUselessCommentFixer::name() => true,
+ NoUselessDirnameCallFixer::name() => true,
+ NoUselessDoctrineRepositoryCommentFixer::name() => true,
+ NoUselessParenthesisFixer::name() => true,
+ NoUselessStrlenFixer::name() => true,
+ PhpUnitAssertArgumentsOrderFixer::name() => true,
+ PhpUnitDedicatedAssertFixer::name() => true,
+ PhpUnitNoUselessReturnFixer::name() => true,
+ PhpdocNoSuperfluousParamFixer::name() => true,
+ PhpdocTypesTrimFixer::name() => true,
+ SingleSpaceAfterStatementFixer::name() => true,
+ SingleSpaceBeforeStatementFixer::name() => true,
+ StringableInterfaceFixer::name() => true,
+ 'PedroTroller/ordered_with_getter_and_setter_first' => true,
+ 'PedroTroller/line_break_between_statements' => true,
+ 'method_chaining_indentation' => false,
+ ];
+ }
+
+ #[\Override]
+ public function getCustomFixers(): iterable
+ {
+ yield from new Fixers();
+ yield from new \PedroTroller\CS\Fixer\Fixers();
+ }
+
+ #[\Override]
+ public function getRiskyAllowed(): bool
+ {
+ return true;
+ }
+}
diff --git a/src/RuleSetInterface.php b/src/RuleSetInterface.php
index 73319f1..b3e8eaa 100644
--- a/src/RuleSetInterface.php
+++ b/src/RuleSetInterface.php
@@ -16,7 +16,7 @@ public function name(): string;
/**
* Returns an array of rules along with their configuration.
*
- * @psalm-return array
+ * @psalm-return array|bool>
*/
public function rules(): array;