From 3b95ccebfb07fe4486cc89e2538206309b5f45c5 Mon Sep 17 00:00:00 2001 From: Leo Feyer <1192057+leofeyer@users.noreply.github.com> Date: Fri, 23 Feb 2024 14:51:04 +0100 Subject: [PATCH] Update the config files --- config/contao.php | 481 ++++++++++++++++------------------------- config/set/psr1.php | 22 ++ config/set/psr12.php | 68 ++++++ config/set/psr2.php | 74 +++++++ config/set/symfony.php | 282 ++++++++++++++++++++++++ ecs.php | 21 +- rector.php | 16 +- 7 files changed, 646 insertions(+), 318 deletions(-) create mode 100644 config/set/psr1.php create mode 100644 config/set/psr12.php create mode 100644 config/set/psr2.php create mode 100644 config/set/symfony.php diff --git a/config/contao.php b/config/contao.php index 2e15a83..f135121 100644 --- a/config/contao.php +++ b/config/contao.php @@ -10,302 +10,189 @@ * @license LGPL-3.0-or-later */ +use Contao\EasyCodingStandard\Fixer\AssertEqualsFixer; +use Contao\EasyCodingStandard\Fixer\CaseCommentIndentationFixer; +use Contao\EasyCodingStandard\Fixer\ChainedMethodBlockFixer; +use Contao\EasyCodingStandard\Fixer\CommentLengthFixer; +use Contao\EasyCodingStandard\Fixer\ExpectsWithCallbackFixer; +use Contao\EasyCodingStandard\Fixer\FunctionCallWithMultilineArrayFixer; +use Contao\EasyCodingStandard\Fixer\InlinePhpdocCommentFixer; +use Contao\EasyCodingStandard\Fixer\IsArrayNotEmptyFixer; +use Contao\EasyCodingStandard\Fixer\MockMethodChainingIndentationFixer; +use Contao\EasyCodingStandard\Fixer\MultiLineIfIndentationFixer; +use Contao\EasyCodingStandard\Fixer\MultiLineLambdaFunctionArgumentsFixer; +use Contao\EasyCodingStandard\Fixer\NoExpectsThisAnyFixer; +use Contao\EasyCodingStandard\Fixer\NoLineBreakBetweenMethodArgumentsFixer; +use Contao\EasyCodingStandard\Fixer\SingleLineConfigureCommandFixer; +use Contao\EasyCodingStandard\Fixer\TypeHintOrderFixer; +use Contao\EasyCodingStandard\Sniffs\ContaoFrameworkClassAliasSniff; +use Contao\EasyCodingStandard\Sniffs\SetDefinitionCommandSniff; +use Contao\EasyCodingStandard\Sniffs\UseSprintfInExceptionsSniff; +use PHP_CodeSniffer\Standards\Generic\Sniffs\VersionControl\GitMergeConflictSniff; +use PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\LanguageConstructSpacingSniff; +use PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SuperfluousWhitespaceSniff; +use PhpCsFixer\Fixer\Alias\RandomApiMigrationFixer; +use PhpCsFixer\Fixer\ArrayNotation\NoWhitespaceBeforeCommaInArrayFixer; +use PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer; +use PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer; +use PhpCsFixer\Fixer\ClassNotation\SelfStaticAccessorFixer; +use PhpCsFixer\Fixer\Comment\MultilineCommentOpeningClosingFixer; +use PhpCsFixer\Fixer\ConstantNotation\NativeConstantInvocationFixer; +use PhpCsFixer\Fixer\ControlStructure\NoSuperfluousElseifFixer; +use PhpCsFixer\Fixer\ControlStructure\NoUselessElseFixer; +use PhpCsFixer\Fixer\ControlStructure\TrailingCommaInMultilineFixer; +use PhpCsFixer\Fixer\FunctionNotation\NullableTypeDeclarationForDefaultNullValueFixer; +use PhpCsFixer\Fixer\FunctionNotation\RegularCallableCallFixer; +use PhpCsFixer\Fixer\FunctionNotation\StaticLambdaFixer; +use PhpCsFixer\Fixer\FunctionNotation\UseArrowFunctionsFixer; +use PhpCsFixer\Fixer\FunctionNotation\VoidReturnFixer; +use PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveIssetsFixer; +use PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveUnsetsFixer; +use PhpCsFixer\Fixer\LanguageConstruct\NoUnsetOnPropertyFixer; +use PhpCsFixer\Fixer\ListNotation\ListSyntaxFixer; +use PhpCsFixer\Fixer\Operator\TernaryToNullCoalescingFixer; +use PhpCsFixer\Fixer\Phpdoc\GeneralPhpdocAnnotationRemoveFixer; +use PhpCsFixer\Fixer\Phpdoc\PhpdocLineSpanFixer; +use PhpCsFixer\Fixer\Phpdoc\PhpdocNoEmptyReturnFixer; +use PhpCsFixer\Fixer\Phpdoc\PhpdocOrderByValueFixer; +use PhpCsFixer\Fixer\Phpdoc\PhpdocSeparationFixer; +use PhpCsFixer\Fixer\Phpdoc\PhpdocToCommentFixer; +use PhpCsFixer\Fixer\Phpdoc\PhpdocTypesFixer; +use PhpCsFixer\Fixer\Phpdoc\PhpdocVarAnnotationCorrectOrderFixer; +use PhpCsFixer\Fixer\PhpTag\EchoTagSyntaxFixer; +use PhpCsFixer\Fixer\PhpUnit\PhpUnitDedicateAssertInternalTypeFixer; +use PhpCsFixer\Fixer\PhpUnit\PhpUnitExpectationFixer; +use PhpCsFixer\Fixer\PhpUnit\PhpUnitMockFixer; +use PhpCsFixer\Fixer\PhpUnit\PhpUnitNamespacedFixer; +use PhpCsFixer\Fixer\PhpUnit\PhpUnitNoExpectationAnnotationFixer; +use PhpCsFixer\Fixer\PhpUnit\PhpUnitTestCaseStaticMethodCallsFixer; +use PhpCsFixer\Fixer\ReturnNotation\NoUselessReturnFixer; +use PhpCsFixer\Fixer\ReturnNotation\ReturnAssignmentFixer; +use PhpCsFixer\Fixer\Semicolon\MultilineWhitespaceBeforeSemicolonsFixer; +use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer; +use PhpCsFixer\Fixer\Strict\StrictComparisonFixer; +use PhpCsFixer\Fixer\Strict\StrictParamFixer; +use PhpCsFixer\Fixer\StringNotation\EscapeImplicitBackslashesFixer; +use PhpCsFixer\Fixer\StringNotation\HeredocToNowdocFixer; +use PhpCsFixer\Fixer\Whitespace\ArrayIndentationFixer; +use PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer; +use PhpCsFixer\Fixer\Whitespace\HeredocIndentationFixer; +use PhpCsFixer\Fixer\Whitespace\MethodChainingIndentationFixer; +use PhpCsFixerCustomFixers\Fixer\MultilinePromotedPropertiesFixer; +use PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer; +use PhpCsFixerCustomFixers\Fixer\PhpdocTypesCommaSpacesFixer; +use PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer; +use SlevomatCodingStandard\Sniffs\Classes\TraitUseSpacingSniff; +use SlevomatCodingStandard\Sniffs\Functions\UnusedInheritedVariablePassedToClosureSniff; +use SlevomatCodingStandard\Sniffs\Namespaces\ReferenceUsedNamesOnlySniff; +use SlevomatCodingStandard\Sniffs\Namespaces\UnusedUsesSniff; +use SlevomatCodingStandard\Sniffs\Namespaces\UselessAliasSniff; +use SlevomatCodingStandard\Sniffs\Operators\RequireCombinedAssignmentOperatorSniff; +use SlevomatCodingStandard\Sniffs\PHP\DisallowDirectMagicInvokeCallSniff; +use SlevomatCodingStandard\Sniffs\PHP\UselessParenthesesSniff; +use SlevomatCodingStandard\Sniffs\TypeHints\DisallowArrayTypeHintSyntaxSniff; +use SlevomatCodingStandard\Sniffs\TypeHints\NullTypeHintOnLastPositionSniff; +use SlevomatCodingStandard\Sniffs\TypeHints\UselessConstantTypeHintSniff; +use SlevomatCodingStandard\Sniffs\Variables\UnusedVariableSniff; +use SlevomatCodingStandard\Sniffs\Variables\UselessVariableSniff; +use SlevomatCodingStandard\Sniffs\Whitespaces\DuplicateSpacesSniff; +use Symplify\CodingStandard\Fixer\Commenting\ParamReturnAndVarTagMalformsFixer; +use Symplify\CodingStandard\Fixer\Strict\BlankLineAfterStrictTypesFixer; use Symplify\EasyCodingStandard\Config\ECSConfig; -return static function (ECSConfig $ecsConfig): void { - // @see \PhpCsFixer\RuleSet\Sets\PSR1Set - $ecsConfig->rule(PhpCsFixer\Fixer\Basic\EncodingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpTag\FullOpeningTagFixer::class); - - // @see \PhpCsFixer\RuleSet\Sets\PSR2Set - $ecsConfig->rule(PhpCsFixer\Fixer\NamespaceNotation\BlankLineAfterNamespaceFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\ConstantCaseFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\ControlStructureBracesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\ControlStructureContinuationPositionFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Basic\CurlyBracesPositionFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\ElseifFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\IndentationTypeFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\LineEndingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\LowercaseKeywordsFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer::class, ['on_multiline' => 'ensure_fully_multiline']); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\NoBreakCommentFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpTag\NoClosingTagFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Basic\NoMultipleStatementsPerLineFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\NoSpaceAroundDoubleColonFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\NoSpacesAfterFunctionNameFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\NoTrailingWhitespaceFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Comment\NoTrailingWhitespaceInCommentFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\SingleBlankLineAtEofFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ClassNotation\SingleClassElementPerStatementFixer::class, ['elements' => ['property']]); - $ecsConfig->rule(PhpCsFixer\Fixer\Import\SingleImportPerStatementFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Import\SingleLineAfterImportsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\SpacesInsideParenthesesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\StatementIndentationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\SwitchCaseSemicolonToColonFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\SwitchCaseSpaceFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ClassNotation\VisibilityRequiredFixer::class, ['elements' => ['method', 'property']]); - - // @see \PhpCsFixer\RuleSet\Sets\PSR12Set - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpTag\BlankLineAfterOpeningTagFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\BlankLineBetweenImportGroupsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\NamespaceNotation\BlankLinesBeforeNamespaceFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer::class, ['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\CompactNullableTypehintFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Basic\CurlyBracesPositionFixer::class, ['allow_single_line_empty_anonymous_classes' => true]); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\DeclareEqualNormalizeFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\CastNotation\LowercaseCastFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\LowercaseStaticReferenceFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\NewWithBracesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\NoBlankLinesAfterClassOpeningFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Import\NoLeadingImportSlashFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\NoWhitespaceInBlankLineFixer::class); - // This rule is added with its default configuration in line 251 - // $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer::class, ['order' => ['use_trait']]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Import\OrderedImportsFixer::class, ['imports_order' => ['class', 'function', 'const'], 'sort_algorithm' => 'none']); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\ReturnTypeDeclarationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\CastNotation\ShortScalarCastFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Import\SingleImportPerStatementFixer::class, ['group_to_single_imports' => false]); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\SingleTraitInsertPerStatementFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\TernaryOperatorSpacesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\VisibilityRequiredFixer::class); - - // @see \PhpCsFixer\RuleSet\Sets\PSR12RiskySet - $ecsConfig->rule(PhpCsFixer\Fixer\StringNotation\NoTrailingWhitespaceInStringFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\NoUnreachableDefaultArgumentValueFixer::class); - - // @see \PhpCsFixer\RuleSet\Sets\SymfonySet - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\AlignMultilineCommentFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Alias\BacktickToShellExecFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer::class, ['statements' => ['return']]); - $ecsConfig->rule(PhpCsFixer\Fixer\CastNotation\CastSpacesFixer::class); - // This rule is added with its default configuration in line 224 - // $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer::class, ['elements' => ['method' => 'one']]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer::class, ['single_line' => true]); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\ClassReferenceNameCasingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\NamespaceNotation\CleanNamespaceFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\ConcatSpaceFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Basic\CurlyBracesPositionFixer::class, ['allow_single_line_anonymous_functions' => true, 'allow_single_line_empty_anonymous_classes' => true]); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\DeclareParenthesesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpTag\EchoTagSyntaxFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ControlStructure\EmptyLoopBodyFixer::class, ['style' => 'braces']); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\EmptyLoopConditionFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Import\FullyQualifiedStrictTypesFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\GeneralPhpdocTagRenameFixer::class, ['replacements' => ['inheritDocs' => 'inheritDoc']]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Import\GlobalNamespaceImportFixer::class, ['import_classes' => false, 'import_constants' => false, 'import_functions' => false]); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\IncludeFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\IncrementStyleFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\IntegerLiteralCaseFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\LambdaNotUsedImportFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpTag\LinebreakAfterOpeningTagFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\MagicConstantCasingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\MagicMethodCasingFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer::class, ['on_multiline' => 'ignore']); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\NativeFunctionCasingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Casing\NativeFunctionTypeDeclarationCasingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Alias\NoAliasLanguageConstructCallFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\NoAlternativeSyntaxFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\StringNotation\NoBinaryStringFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\NoBlankLinesAfterPhpdocFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Comment\NoEmptyCommentFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\NoEmptyPhpdocFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Semicolon\NoEmptyStatementFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Whitespace\NoExtraBlankLinesFixer::class, ['tokens' => ['attribute', 'case', 'continue', 'curly_brace_block', 'default', 'extra', 'parenthesis_brace_block', 'square_brace_block', 'switch', 'throw', 'use']]); - $ecsConfig->rule(PhpCsFixer\Fixer\NamespaceNotation\NoLeadingNamespaceWhitespaceFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Alias\NoMixedEchoPrintFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ArrayNotation\NoMultilineWhitespaceAroundDoubleArrowFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\NoNullPropertyInitializationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\CastNotation\NoShortBoolCastFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Semicolon\NoSinglelineWhitespaceBeforeSemicolonsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\NoSpacesAroundOffsetFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\NoSuperfluousPhpdocTagsFixer::class, ['remove_inheritdoc' => true]); - $ecsConfig->rule(PhpCsFixer\Fixer\Basic\NoTrailingCommaInSinglelineFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ControlStructure\NoUnneededControlParenthesesFixer::class, ['statements' => ['break', 'clone', 'continue', 'echo_print', 'others', 'return', 'switch_case', 'yield', 'yield_from']]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ControlStructure\NoUnneededCurlyBracesFixer::class, ['namespaces' => true]); - $ecsConfig->rule(PhpCsFixer\Fixer\Import\NoUnneededImportAliasFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\CastNotation\NoUnsetCastFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Import\NoUnusedImportsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\NoUselessConcatOperatorFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\NoUselessNullsafeOperatorFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ArrayNotation\NoWhitespaceBeforeCommaInArrayFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ArrayNotation\NormalizeIndexBraceFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\FunctionNotation\NullableTypeDeclarationForDefaultNullValueFixer::class, ['use_nullable_type_declaration' => false]); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\ObjectOperatorWithoutWhitespaceFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Operator\OperatorLinebreakFixer::class, ['only_booleans' => true]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Import\OrderedImportsFixer::class, ['imports_order' => ['class', 'function', 'const'], 'sort_algorithm' => 'alpha']); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitFqcnAnnotationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitMethodCasingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocAlignFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocAnnotationWithoutDotFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocIndentFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocInlineTagNormalizerFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocNoAccessFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocNoAliasTagFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocNoPackageFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocNoUselessInheritdocFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\PhpdocOrderFixer::class, ['order' => ['param', 'return', 'throws']]); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocReturnSelfReferenceFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocScalarFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocSeparationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocSingleLineVarSpacingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocSummaryFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\PhpdocTagTypeFixer::class, ['tags' => ['inheritdoc' => 'inline']]); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocToCommentFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocTrimFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocTrimConsecutiveBlankLineSeparationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocTypesFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\PhpdocTypesOrderFixer::class, ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none']); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocVarWithoutNameFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Semicolon\SemicolonAfterInstructionFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\StringNotation\SimpleToComplexStringVariableFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\SingleClassElementPerStatementFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Import\SingleImportPerStatementFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Comment\SingleLineCommentSpacingFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Comment\SingleLineCommentStyleFixer::class, ['comment_types' => ['hash']]); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\SingleLineThrowFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\StringNotation\SingleQuoteFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\SingleSpaceAroundConstructFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Semicolon\SpaceAfterSemicolonFixer::class, ['remove_in_empty_for_expressions' => true]); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\StandardizeIncrementFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\StandardizeNotEqualsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\SwitchContinueToBreakFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\TrailingCommaInMultilineFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ArrayNotation\TrimArraySpacesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\TypeDeclarationSpacesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\TypesSpacesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\UnaryOperatorSpacesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ArrayNotation\WhitespaceAfterCommaInArrayFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\YodaStyleFixer::class); - - // @see \PhpCsFixer\RuleSet\Sets\SymfonyRiskySet - $ecsConfig->rule(PhpCsFixer\Fixer\Alias\ArrayPushFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\CombineNestedDirnameFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\DirConstantFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Alias\EregToPregFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\ErrorSuppressionFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\FopenFlagOrderFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\FunctionNotation\FopenFlagsFixer::class, ['b_mode' => false]); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\FunctionToConstantFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\GetClassToClassKeywordFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\ImplodeCallFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\IsNullFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\LogicalOperatorsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Alias\ModernizeStrposFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\CastNotation\ModernizeTypesCastingFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ConstantNotation\NativeConstantInvocationFixer::class, ['strict' => false]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\FunctionNotation\NativeFunctionInvocationFixer::class, ['include' => ['@compiler_optimized'], 'scope' => 'namespaced', 'strict' => true]); - $ecsConfig->rule(PhpCsFixer\Fixer\Alias\NoAliasFunctionsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Naming\NoHomoglyphNamesFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\NoPhp4ConstructorFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\NoUnneededFinalMethodFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\NoUnreachableDefaultArgumentValueFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\NoUselessSprintfFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Basic\NonPrintableCharacterFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\OrderedTraitsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitConstructFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitMockShortWillReturnFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitSetUpTearDownVisibilityFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitTestAnnotationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Basic\PsrAutoloadingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\SelfAccessorFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Alias\SetTypeToCastFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\StringNotation\StringLengthToEmptyFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\StringNotation\StringLineEndingFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\TernaryToElvisOperatorFixer::class); - - // Contao - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\ArrayIndentationFixer::class); - $ecsConfig->rule(Symplify\CodingStandard\Fixer\Strict\BlankLineAfterStrictTypesFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer::class, ['statements' => ['do', 'for', 'foreach', 'return', 'switch', 'throw', 'try', 'while']]); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveIssetsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveUnsetsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer::class); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\TypeHints\DisallowArrayTypeHintSyntaxSniff::class); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\PHP\DisallowDirectMagicInvokeCallSniff::class); - $ecsConfig->ruleWithConfiguration(SlevomatCodingStandard\Sniffs\Whitespaces\DuplicateSpacesSniff::class, ['ignoreSpacesInAnnotation' => true]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\PhpTag\EchoTagSyntaxFixer::class, ['format' => 'short']); - $ecsConfig->rule(PhpCsFixer\Fixer\StringNotation\EscapeImplicitBackslashesFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\GeneralPhpdocAnnotationRemoveFixer::class, ['annotations' => ['author', 'inheritdoc']]); - $ecsConfig->rule(PHP_CodeSniffer\Standards\Generic\Sniffs\VersionControl\GitMergeConflictSniff::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\HeredocIndentationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\StringNotation\HeredocToNowdocFixer::class); - $ecsConfig->rule(PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\LanguageConstructSpacingSniff::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ListNotation\ListSyntaxFixer::class, ['syntax' => 'short']); - $ecsConfig->rule(PhpCsFixer\Fixer\Whitespace\MethodChainingIndentationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Comment\MultilineCommentOpeningClosingFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixerCustomFixers\Fixer\MultilinePromotedPropertiesFixer::class, ['minimum_number_of_parameters' => 2]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Semicolon\MultilineWhitespaceBeforeSemicolonsFixer::class, ['strategy' => 'new_line_for_chained_calls']); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ConstantNotation\NativeConstantInvocationFixer::class, ['fix_built_in' => false, 'include' => ['DIRECTORY_SEPARATOR', 'PHP_SAPI', 'PHP_VERSION_ID'], 'scope' => 'namespaced']); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\NoSuperfluousElseifFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\LanguageConstruct\NoUnsetOnPropertyFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ControlStructure\NoUselessElseFixer::class); - $ecsConfig->rule(PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ReturnNotation\NoUselessReturnFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ArrayNotation\NoWhitespaceBeforeCommaInArrayFixer::class, ['after_heredoc' => true]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\FunctionNotation\NullableTypeDeclarationForDefaultNullValueFixer::class, ['use_nullable_type_declaration' => true]); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\TypeHints\NullTypeHintOnLastPositionSniff::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer::class); - $ecsConfig->rule(Symplify\CodingStandard\Fixer\Commenting\ParamReturnAndVarTagMalformsFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocLineSpanFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocNoEmptyReturnFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocOrderByValueFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\PhpdocSeparationFixer::class, ['groups' => [['template', 'mixin'], ['preserveGlobalState', 'runInSeparateProcess'], ['copyright', 'license'], ['Attributes', 'Attribute'], ['ORM\\*'], ['Assert\\*']]]); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\PhpdocToCommentFixer::class, ['ignored_tags' => ['todo', 'see']]); - $ecsConfig->rule(PhpCsFixerCustomFixers\Fixer\PhpdocTypesCommaSpacesFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Phpdoc\PhpdocTypesFixer::class, ['groups' => ['simple', 'meta']]); - $ecsConfig->rule(PhpCsFixer\Fixer\Phpdoc\PhpdocVarAnnotationCorrectOrderFixer::class); - $ecsConfig->rule(PhpCsFixerCustomFixers\Fixer\PhpUnitAssertArgumentsOrderFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitDedicateAssertInternalTypeFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitExpectationFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitMockFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitNamespacedFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\PhpUnit\PhpUnitNoExpectationAnnotationFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\PhpUnit\PhpUnitTestCaseStaticMethodCallsFixer::class, ['call_type' => 'this']); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\Alias\RandomApiMigrationFixer::class, ['replacements' => ['mt_rand' => 'random_int', 'rand' => 'random_int']]); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\RegularCallableCallFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ReturnNotation\ReturnAssignmentFixer::class); - $ecsConfig->ruleWithConfiguration(SlevomatCodingStandard\Sniffs\Namespaces\ReferenceUsedNamesOnlySniff::class, ['searchAnnotations' => true, 'allowFullyQualifiedNameForCollidingClasses' => true, 'allowFullyQualifiedGlobalClasses' => true, 'allowFullyQualifiedGlobalFunctions' => true, 'allowFullyQualifiedGlobalConstants' => true, 'allowPartialUses' => false]); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\Operators\RequireCombinedAssignmentOperatorSniff::class); - $ecsConfig->rule(PhpCsFixer\Fixer\ClassNotation\SelfStaticAccessorFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\StaticLambdaFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Strict\StrictComparisonFixer::class); - $ecsConfig->rule(PhpCsFixer\Fixer\Strict\StrictParamFixer::class); - $ecsConfig->ruleWithConfiguration(PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SuperfluousWhitespaceSniff::class, ['ignoreBlankLines' => false]); - $ecsConfig->rule(PhpCsFixer\Fixer\Operator\TernaryToNullCoalescingFixer::class); - $ecsConfig->ruleWithConfiguration(PhpCsFixer\Fixer\ControlStructure\TrailingCommaInMultilineFixer::class, ['elements' => ['arrays', 'arguments', 'match', 'parameters'], 'after_heredoc' => true]); - $ecsConfig->ruleWithConfiguration(SlevomatCodingStandard\Sniffs\Classes\TraitUseSpacingSniff::class, ['linesCountAfterLastUse' => 1, 'linesCountAfterLastUseWhenLastInClass' => 0, 'linesCountBeforeFirstUse' => 0, 'linesCountBetweenUses' => 0]); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\Functions\UnusedInheritedVariablePassedToClosureSniff::class); - $ecsConfig->ruleWithConfiguration(SlevomatCodingStandard\Sniffs\Namespaces\UnusedUsesSniff::class, ['searchAnnotations' => true]); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\Variables\UnusedVariableSniff::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\UseArrowFunctionsFixer::class); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\Namespaces\UselessAliasSniff::class); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\TypeHints\UselessConstantTypeHintSniff::class); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\PHP\UselessParenthesesSniff::class); - $ecsConfig->rule(SlevomatCodingStandard\Sniffs\Variables\UselessVariableSniff::class); - $ecsConfig->rule(PhpCsFixer\Fixer\FunctionNotation\VoidReturnFixer::class); - - // Custom fixers - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\AssertEqualsFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\CaseCommentIndentationFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\ChainedMethodBlockFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\CommentLengthFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Sniffs\ContaoFrameworkClassAliasSniff::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\ExpectsWithCallbackFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\FunctionCallWithMultilineArrayFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\InlinePhpdocCommentFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\IsArrayNotEmptyFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\MockMethodChainingIndentationFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\MultiLineIfIndentationFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\MultiLineLambdaFunctionArgumentsFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\NoExpectsThisAnyFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\NoLineBreakBetweenMethodArgumentsFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\SingleLineConfigureCommandFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Sniffs\SetDefinitionCommandSniff::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Fixer\TypeHintOrderFixer::class); - $ecsConfig->rule(Contao\EasyCodingStandard\Sniffs\UseSprintfInExceptionsSniff::class); -}; +return ECSConfig::configure() + ->withSets([ + __DIR__.'/set/psr12.php', + __DIR__.'/set/symfony.php', + ]) + ->withRules([ + ArrayIndentationFixer::class, + AssertEqualsFixer::class, + BlankLineAfterStrictTypesFixer::class, + CaseCommentIndentationFixer::class, + ChainedMethodBlockFixer::class, + ClassAttributesSeparationFixer::class, + CombineConsecutiveIssetsFixer::class, + CombineConsecutiveUnsetsFixer::class, + CommentLengthFixer::class, + ContaoFrameworkClassAliasSniff::class, + DeclareStrictTypesFixer::class, + DisallowArrayTypeHintSyntaxSniff::class, + DisallowDirectMagicInvokeCallSniff::class, + EscapeImplicitBackslashesFixer::class, + ExpectsWithCallbackFixer::class, + FunctionCallWithMultilineArrayFixer::class, + GitMergeConflictSniff::class, + HeredocIndentationFixer::class, + HeredocToNowdocFixer::class, + InlinePhpdocCommentFixer::class, + IsArrayNotEmptyFixer::class, + LanguageConstructSpacingSniff::class, + MethodChainingIndentationFixer::class, + MockMethodChainingIndentationFixer::class, + MultilineCommentOpeningClosingFixer::class, + MultiLineIfIndentationFixer::class, + MultiLineLambdaFunctionArgumentsFixer::class, + NoExpectsThisAnyFixer::class, + NoLineBreakBetweenMethodArgumentsFixer::class, + NoSuperfluousElseifFixer::class, + NoUnsetOnPropertyFixer::class, + NoUselessElseFixer::class, + NoUselessParenthesisFixer::class, + NoUselessReturnFixer::class, + NullTypeHintOnLastPositionSniff::class, + OrderedClassElementsFixer::class, + ParamReturnAndVarTagMalformsFixer::class, + PhpdocLineSpanFixer::class, + PhpdocNoEmptyReturnFixer::class, + PhpdocOrderByValueFixer::class, + PhpdocTypesCommaSpacesFixer::class, + PhpdocVarAnnotationCorrectOrderFixer::class, + PhpUnitAssertArgumentsOrderFixer::class, + PhpUnitDedicateAssertInternalTypeFixer::class, + PhpUnitExpectationFixer::class, + PhpUnitMockFixer::class, + PhpUnitNamespacedFixer::class, + PhpUnitNoExpectationAnnotationFixer::class, + RegularCallableCallFixer::class, + ReturnAssignmentFixer::class, + RequireCombinedAssignmentOperatorSniff::class, + SelfStaticAccessorFixer::class, + SetDefinitionCommandSniff::class, + SingleLineConfigureCommandFixer::class, + StaticLambdaFixer::class, + StrictComparisonFixer::class, + StrictParamFixer::class, + TernaryToNullCoalescingFixer::class, + TypeHintOrderFixer::class, + UnusedInheritedVariablePassedToClosureSniff::class, + UnusedVariableSniff::class, + UseArrowFunctionsFixer::class, + UselessAliasSniff::class, + UselessConstantTypeHintSniff::class, + UselessParenthesesSniff::class, + UselessVariableSniff::class, + UseSprintfInExceptionsSniff::class, + VoidReturnFixer::class, + ]) + ->withConfiguredRule(BlankLineBeforeStatementFixer::class, ['statements' => ['do', 'for', 'foreach', 'return', 'switch', 'throw', 'try', 'while']]) + ->withConfiguredRule(DuplicateSpacesSniff::class, ['ignoreSpacesInAnnotation' => true]) + ->withConfiguredRule(EchoTagSyntaxFixer::class, ['format' => 'short']) + ->withConfiguredRule(GeneralPhpdocAnnotationRemoveFixer::class, ['annotations' => ['author', 'inheritdoc']]) + ->withConfiguredRule(ListSyntaxFixer::class, ['syntax' => 'short']) + ->withConfiguredRule(MultilinePromotedPropertiesFixer::class, ['minimum_number_of_parameters' => 2]) + ->withConfiguredRule(MultilineWhitespaceBeforeSemicolonsFixer::class, ['strategy' => 'new_line_for_chained_calls']) + ->withConfiguredRule(NativeConstantInvocationFixer::class, ['fix_built_in' => false, 'include' => ['DIRECTORY_SEPARATOR', 'PHP_SAPI', 'PHP_VERSION_ID'], 'scope' => 'namespaced']) + ->withConfiguredRule(NoWhitespaceBeforeCommaInArrayFixer::class, ['after_heredoc' => true]) + ->withConfiguredRule(NullableTypeDeclarationForDefaultNullValueFixer::class, ['use_nullable_type_declaration' => true]) + ->withConfiguredRule(PhpdocSeparationFixer::class, ['groups' => [['template', 'mixin'], ['preserveGlobalState', 'runInSeparateProcess'], ['copyright', 'license'], ['Attributes', 'Attribute'], ['ORM\\*'], ['Assert\\*']]]) + ->withConfiguredRule(PhpdocToCommentFixer::class, ['ignored_tags' => ['todo', 'see']]) + ->withConfiguredRule(PhpdocTypesFixer::class, ['groups' => ['simple', 'meta']]) + ->withConfiguredRule(PhpUnitTestCaseStaticMethodCallsFixer::class, ['call_type' => 'this']) + ->withConfiguredRule(RandomApiMigrationFixer::class, ['replacements' => ['mt_rand' => 'random_int', 'rand' => 'random_int']]) + ->withConfiguredRule(ReferenceUsedNamesOnlySniff::class, ['searchAnnotations' => true, 'allowFullyQualifiedNameForCollidingClasses' => true, 'allowFullyQualifiedGlobalClasses' => true, 'allowFullyQualifiedGlobalFunctions' => true, 'allowFullyQualifiedGlobalConstants' => true, 'allowPartialUses' => false]) + ->withConfiguredRule(SuperfluousWhitespaceSniff::class, ['ignoreBlankLines' => false]) + ->withConfiguredRule(TrailingCommaInMultilineFixer::class, ['elements' => ['arrays', 'arguments', 'match', 'parameters'], 'after_heredoc' => true]) + ->withConfiguredRule(TraitUseSpacingSniff::class, ['linesCountAfterLastUse' => 1, 'linesCountAfterLastUseWhenLastInClass' => 0, 'linesCountBeforeFirstUse' => 0, 'linesCountBetweenUses' => 0]) + ->withConfiguredRule(UnusedUsesSniff::class, ['searchAnnotations' => true]) +; diff --git a/config/set/psr1.php b/config/set/psr1.php new file mode 100644 index 0000000..0a4a6c4 --- /dev/null +++ b/config/set/psr1.php @@ -0,0 +1,22 @@ +withRules([ + EncodingFixer::class, + FullOpeningTagFixer::class, + ]) +; diff --git a/config/set/psr12.php b/config/set/psr12.php new file mode 100644 index 0000000..2fddbf4 --- /dev/null +++ b/config/set/psr12.php @@ -0,0 +1,68 @@ +withSets([ + __DIR__.'/psr1.php', + __DIR__.'/psr2.php', + ]) + ->withRules([ + BinaryOperatorSpacesFixer::class, + BlankLineAfterOpeningTagFixer::class, + BlankLineBetweenImportGroupsFixer::class, + BlankLinesBeforeNamespaceFixer::class, + CompactNullableTypeDeclarationFixer::class, + DeclareEqualNormalizeFixer::class, + LowercaseCastFixer::class, + LowercaseStaticReferenceFixer::class, + NewWithParenthesesFixer::class, + NoBlankLinesAfterClassOpeningFixer::class, + NoLeadingImportSlashFixer::class, + NoTrailingWhitespaceInStringFixer::class, + NoUnreachableDefaultArgumentValueFixer::class, + NoWhitespaceInBlankLineFixer::class, + ReturnTypeDeclarationFixer::class, + ShortScalarCastFixer::class, + SingleTraitInsertPerStatementFixer::class, + TernaryOperatorSpacesFixer::class, + VisibilityRequiredFixer::class, + ]) + ->withConfiguredRule(BracesPositionFixer::class, ['allow_single_line_empty_anonymous_classes' => true]) + ->withConfiguredRule(ClassDefinitionFixer::class, ['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]) + ->withConfiguredRule(OrderedImportsFixer::class, ['imports_order' => ['class', 'function', 'const'], 'sort_algorithm' => 'none']) + ->withConfiguredRule(SingleImportPerStatementFixer::class, ['group_to_single_imports' => false]) +; diff --git a/config/set/psr2.php b/config/set/psr2.php new file mode 100644 index 0000000..0e9eaaa --- /dev/null +++ b/config/set/psr2.php @@ -0,0 +1,74 @@ +withRules([ + BlankLineAfterNamespaceFixer::class, + BracesPositionFixer::class, + ClassDefinitionFixer::class, + ConstantCaseFixer::class, + ControlStructureBracesFixer::class, + ControlStructureContinuationPositionFixer::class, + ElseifFixer::class, + FunctionDeclarationFixer::class, + IndentationTypeFixer::class, + LineEndingFixer::class, + LowercaseKeywordsFixer::class, + NoBreakCommentFixer::class, + NoClosingTagFixer::class, + NoMultipleStatementsPerLineFixer::class, + NoSpaceAroundDoubleColonFixer::class, + NoSpacesAfterFunctionNameFixer::class, + NoTrailingWhitespaceFixer::class, + NoTrailingWhitespaceInCommentFixer::class, + SingleBlankLineAtEofFixer::class, + SingleImportPerStatementFixer::class, + SingleLineAfterImportsFixer::class, + SpacesInsideParenthesesFixer::class, + StatementIndentationFixer::class, + SwitchCaseSemicolonToColonFixer::class, + SwitchCaseSpaceFixer::class, + ]) + ->withConfiguredRule(MethodArgumentSpaceFixer::class, ['on_multiline' => 'ensure_fully_multiline']) + ->withConfiguredRule(SingleClassElementPerStatementFixer::class, ['elements' => ['property']]) + ->withConfiguredRule(VisibilityRequiredFixer::class, ['elements' => ['method', 'property']]) +; diff --git a/config/set/symfony.php b/config/set/symfony.php new file mode 100644 index 0000000..0eb56d3 --- /dev/null +++ b/config/set/symfony.php @@ -0,0 +1,282 @@ +withRules([ + AlignMultilineCommentFixer::class, + ArrayPushFixer::class, + ArraySyntaxFixer::class, + BacktickToShellExecFixer::class, + CastSpacesFixer::class, + ClassReferenceNameCasingFixer::class, + CleanNamespaceFixer::class, + CombineNestedDirnameFixer::class, + ConcatSpaceFixer::class, + DeclareParenthesesFixer::class, + DirConstantFixer::class, + EchoTagSyntaxFixer::class, + EmptyLoopConditionFixer::class, + EregToPregFixer::class, + ErrorSuppressionFixer::class, + FopenFlagOrderFixer::class, + FullyQualifiedStrictTypesFixer::class, + FunctionToConstantFixer::class, + GetClassToClassKeywordFixer::class, + ImplodeCallFixer::class, + IncludeFixer::class, + IncrementStyleFixer::class, + IntegerLiteralCaseFixer::class, + IsNullFixer::class, + LambdaNotUsedImportFixer::class, + LinebreakAfterOpeningTagFixer::class, + LogicalOperatorsFixer::class, + MagicConstantCasingFixer::class, + MagicMethodCasingFixer::class, + ModernizeStrposFixer::class, + ModernizeTypesCastingFixer::class, + NativeFunctionCasingFixer::class, + NativeTypeDeclarationCasingFixer::class, + NoAliasFunctionsFixer::class, + NoAliasLanguageConstructCallFixer::class, + NoAlternativeSyntaxFixer::class, + NoBinaryStringFixer::class, + NoBlankLinesAfterPhpdocFixer::class, + NoEmptyCommentFixer::class, + NoEmptyPhpdocFixer::class, + NoEmptyStatementFixer::class, + NoHomoglyphNamesFixer::class, + NoLeadingNamespaceWhitespaceFixer::class, + NoMixedEchoPrintFixer::class, + NoMultilineWhitespaceAroundDoubleArrowFixer::class, + NonPrintableCharacterFixer::class, + NoNullPropertyInitializationFixer::class, + NoPhp4ConstructorFixer::class, + NoShortBoolCastFixer::class, + NoSinglelineWhitespaceBeforeSemicolonsFixer::class, + NoSpacesAroundOffsetFixer::class, + NoTrailingCommaInSinglelineFixer::class, + NoUnneededFinalMethodFixer::class, + NoUnneededImportAliasFixer::class, + NoUnsetCastFixer::class, + NoUnusedImportsFixer::class, + NoUselessConcatOperatorFixer::class, + NoUselessNullsafeOperatorFixer::class, + NoUselessSprintfFixer::class, + NoWhitespaceBeforeCommaInArrayFixer::class, + NormalizeIndexBraceFixer::class, + ObjectOperatorWithoutWhitespaceFixer::class, + OrderedTraitsFixer::class, + PhpUnitConstructFixer::class, + PhpUnitFqcnAnnotationFixer::class, + PhpUnitMethodCasingFixer::class, + PhpUnitMockShortWillReturnFixer::class, + PhpUnitSetUpTearDownVisibilityFixer::class, + PhpUnitTestAnnotationFixer::class, + PhpdocAlignFixer::class, + PhpdocAnnotationWithoutDotFixer::class, + PhpdocIndentFixer::class, + PhpdocInlineTagNormalizerFixer::class, + PhpdocNoAccessFixer::class, + PhpdocNoAliasTagFixer::class, + PhpdocNoPackageFixer::class, + PhpdocNoUselessInheritdocFixer::class, + PhpdocReturnSelfReferenceFixer::class, + PhpdocScalarFixer::class, + PhpdocSeparationFixer::class, + PhpdocSingleLineVarSpacingFixer::class, + PhpdocSummaryFixer::class, + PhpdocToCommentFixer::class, + PhpdocTrimFixer::class, + PhpdocTrimConsecutiveBlankLineSeparationFixer::class, + PhpdocTypesFixer::class, + PhpdocVarWithoutNameFixer::class, + PsrAutoloadingFixer::class, + SelfAccessorFixer::class, + SemicolonAfterInstructionFixer::class, + SetTypeToCastFixer::class, + SimpleToComplexStringVariableFixer::class, + SingleClassElementPerStatementFixer::class, + SingleLineCommentSpacingFixer::class, + SingleLineThrowFixer::class, + SingleQuoteFixer::class, + SingleSpaceAroundConstructFixer::class, + StandardizeIncrementFixer::class, + StandardizeNotEqualsFixer::class, + StringLengthToEmptyFixer::class, + StringLineEndingFixer::class, + SwitchContinueToBreakFixer::class, + TernaryToElvisOperatorFixer::class, + TrailingCommaInMultilineFixer::class, + TrimArraySpacesFixer::class, + TypeDeclarationSpacesFixer::class, + TypesSpacesFixer::class, + UnaryOperatorSpacesFixer::class, + WhitespaceAfterCommaInArrayFixer::class, + YodaStyleFixer::class, + ]) + ->withConfiguredRule(BlankLineBeforeStatementFixer::class, ['statements' => ['return']]) + ->withConfiguredRule(BracesPositionFixer::class, ['allow_single_line_anonymous_functions' => true, 'allow_single_line_empty_anonymous_classes' => true]) + ->withConfiguredRule(ClassDefinitionFixer::class, ['single_line' => true]) + ->withConfiguredRule(EmptyLoopBodyFixer::class, ['style' => 'braces']) + ->withConfiguredRule(FopenFlagsFixer::class, ['b_mode' => false]) + ->withConfiguredRule(GeneralPhpdocTagRenameFixer::class, ['replacements' => ['inheritDocs' => 'inheritDoc']]) + ->withConfiguredRule(GlobalNamespaceImportFixer::class, ['import_classes' => false, 'import_constants' => false, 'import_functions' => false]) + ->withConfiguredRule(MethodArgumentSpaceFixer::class, ['on_multiline' => 'ignore']) + ->withConfiguredRule(NativeConstantInvocationFixer::class, ['strict' => false]) + ->withConfiguredRule(NativeFunctionInvocationFixer::class, ['include' => ['@compiler_optimized'], 'scope' => 'namespaced', 'strict' => true]) + ->withConfiguredRule(NoExtraBlankLinesFixer::class, ['tokens' => ['attribute', 'case', 'continue', 'curly_brace_block', 'default', 'extra', 'parenthesis_brace_block', 'square_brace_block', 'switch', 'throw', 'use']]) + ->withConfiguredRule(NoSuperfluousPhpdocTagsFixer::class, ['remove_inheritdoc' => true]) + ->withConfiguredRule(NoUnneededBracesFixer::class, ['namespaces' => true]) + ->withConfiguredRule(NoUnneededControlParenthesesFixer::class, ['statements' => ['break', 'clone', 'continue', 'echo_print', 'others', 'return', 'switch_case', 'yield', 'yield_from']]) + ->withConfiguredRule(NullableTypeDeclarationForDefaultNullValueFixer::class, ['use_nullable_type_declaration' => false]) + ->withConfiguredRule(OperatorLinebreakFixer::class, ['only_booleans' => true]) + ->withConfiguredRule(OrderedImportsFixer::class, ['imports_order' => ['class', 'function', 'const'], 'sort_algorithm' => 'alpha']) + ->withConfiguredRule(PhpdocOrderFixer::class, ['order' => ['param', 'return', 'throws']]) + ->withConfiguredRule(PhpdocTagTypeFixer::class, ['tags' => ['inheritdoc' => 'inline']]) + ->withConfiguredRule(PhpdocTypesOrderFixer::class, ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none']) + ->withConfiguredRule(SingleLineCommentStyleFixer::class, ['comment_types' => ['hash']]) + ->withConfiguredRule(SpaceAfterSemicolonFixer::class, ['remove_in_empty_for_expressions' => true]) +; diff --git a/ecs.php b/ecs.php index 2313afc..5bf8aec 100644 --- a/ecs.php +++ b/ecs.php @@ -7,22 +7,19 @@ use SlevomatCodingStandard\Sniffs\Namespaces\ReferenceUsedNamesOnlySniff; use Symplify\EasyCodingStandard\Config\ECSConfig; -return static function (ECSConfig $ecsConfig): void { - $ecsConfig->sets([__DIR__.'/config/contao.php']); - - $ecsConfig->skip([ +return ECSConfig::configure() + ->withSets([__DIR__.'/config/contao.php']) + ->withSkip([ CommentLengthFixer::class => [ 'config/contao.php', ], ReferenceUsedNamesOnlySniff::class => [ 'config/contao.php', ], - ]); - - $ecsConfig->ruleWithConfiguration(HeaderCommentFixer::class, [ + ]) + ->withConfiguredRule(HeaderCommentFixer::class, [ 'header' => "This file is part of Contao.\n\n(c) Leo Feyer\n\n@license LGPL-3.0-or-later", - ]); - - $ecsConfig->parallel(); - $ecsConfig->cacheDirectory(sys_get_temp_dir().'/ecs_ecs_cache'); -}; + ]) + ->withParallel() + ->withCache(sys_get_temp_dir().'/ecs_ecs_cache') +; diff --git a/rector.php b/rector.php index 0962d30..0ccbe98 100644 --- a/rector.php +++ b/rector.php @@ -12,17 +12,15 @@ use Rector\Config\RectorConfig; -return static function (RectorConfig $rectorConfig): void { - $rectorConfig->sets([__DIR__.'/vendor/contao/rector/config/contao.php']); - - $rectorConfig->paths([ +return RectorConfig::configure() + ->withSets([__DIR__.'/vendor/contao/rector/config/contao.php']) + ->withPaths([ __DIR__.'/config', __DIR__.'/src', __DIR__.'/tests', __DIR__.'/ecs.php', __DIR__.'/rector.php', - ]); - - $rectorConfig->parallel(); - $rectorConfig->cacheDirectory(sys_get_temp_dir().'/ecs_rector_cache'); -}; + ]) + ->withParallel() + ->withCache(sys_get_temp_dir().'/ecs_rector_cache') +;