Skip to content

Commit

Permalink
feat: TYPO3V12
Browse files Browse the repository at this point in the history
  • Loading branch information
aoekrz committed Aug 20, 2024
1 parent 52ea0ca commit f7a037a
Show file tree
Hide file tree
Showing 28 changed files with 192 additions and 420 deletions.
73 changes: 26 additions & 47 deletions .code-quality/ecs.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,40 @@

declare(strict_types=1);

use PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer;
use PhpCsFixer\Fixer\Import\OrderedImportsFixer;
use PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer;
use PhpCsFixer\Fixer\StringNotation\ExplicitStringVariableFixer;
use PhpCsFixer\Fixer\Whitespace\ArrayIndentationFixer;
use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer;
use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer;
use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayOpenerAndCloserNewlineFixer;
use Symplify\CodingStandard\Fixer\LineLength\DocBlockLineLengthFixer;
use Symplify\CodingStandard\Fixer\LineLength\LineLengthFixer;
use Symplify\EasyCodingStandard\Config\ECSConfig;
use Symplify\EasyCodingStandard\ValueObject\Option;
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
use PhpCsFixer\Fixer\Phpdoc\NoSuperfluousPhpdocTagsFixer;

return static function (ECSConfig $ecsConfig): void {
$ecsConfig->paths(
return ECSConfig::configure()
->withPaths([
__DIR__ . '/../Classes',
__DIR__ . '/../Tests',
__DIR__ . '/ecs.php',
])
->withSets([
SetList::PSR_12,
SetList::COMMON,
SetList::SYMPLIFY,
SetList::CLEAN_CODE,
])
->withConfiguredRule(
LineLengthFixer::class,
[
__DIR__ . '/../Classes',
__DIR__ . '/ecs.php',
]
);

$ecsConfig->import(SetList::COMMON);
$ecsConfig->import(SetList::CLEAN_CODE);
$ecsConfig->import(SetList::PSR_12);
$ecsConfig->import(SetList::SYMPLIFY);

$ecsConfig->services()
->set(LineLengthFixer::class)
->call('configure', [[
LineLengthFixer::LINE_LENGTH => 140,
LineLengthFixer::INLINE_SHORT_LINES => false,
]]);

$ecsConfig->indentation('spaces');
$ecsConfig->lineEnding(PHP_EOL);
$ecsConfig->cacheDirectory('.cache/ecs/default/');

// Skip Rules and Sniffer
$ecsConfig->skip(
[
// Default Skips
Symplify\CodingStandard\Fixer\LineLength\LineLengthFixer::class => [
__DIR__ . '/ecs.php',
],
ArrayListItemNewlineFixer::class => null,
ArrayOpenerAndCloserNewlineFixer::class => null,
ClassAttributesSeparationFixer::class => null,
OrderedImportsFixer::class => null,
NotOperatorWithSuccessorSpaceFixer::class => null,
ExplicitStringVariableFixer::class => null,
ArrayIndentationFixer::class => null,
'\SlevomatCodingStandard\Sniffs\Whitespaces\DuplicateSpacesSniff.DuplicateSpaces' => null,
'\SlevomatCodingStandard\Sniffs\Namespaces\ReferenceUsedNamesOnlySniff.PartialUse' => null,
NoSuperfluousPhpdocTagsFixer::class => [
__DIR__ . '/../Classes/Controller/CarController.php',
],
]
);
};
)
->withSkip([
NotOperatorWithSuccessorSpaceFixer::class => null,
DocBlockLineLengthFixer::class => null,
ArrayListItemNewlineFixer::class => null,
ArrayOpenerAndCloserNewlineFixer::class => null,
DeclareStrictTypesFixer::class => null,
])
->withSpacing(OPTION::INDENTATION_SPACES, "\n");
9 changes: 0 additions & 9 deletions .code-quality/phpstan-baseline.neon
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
parameters:
ignoreErrors:
-
message: "#^Anonymous variables in a (.*) property fetch can lead to false dead property\\. Make sure the variable type is known$#"
count: 2
path: ../Classes/Controller/FeUserController.php

-
message: "#^There are 2 way to get (.*) value: public property and getter now - pick one to avoid variant behavior\\.$#"
count: 3
path: ../Classes/Domain/Model/Product.php

-
message: "#^Anonymous variables in a (.*) property fetch can lead to false dead property\\. Make sure the variable type is known$#"
path: ../Classes/
23 changes: 7 additions & 16 deletions .code-quality/phpstan.neon
Original file line number Diff line number Diff line change
@@ -1,29 +1,20 @@
includes:
- phpstan-baseline.neon
- ../.Build/vendor/symplify/phpstan-rules/config/services/services.neon
- ../.Build/vendor/symplify/phpstan-rules/config/code-complexity-rules.neon

rules:
- Symplify\PHPStanRules\Rules\NoDefaultExceptionRule
- phpstan-baseline.neon

parameters:
level: 6
paths:
- "../Classes/"
- "../Tests/"

ignoreErrors:
- identifier: missingType.iterableValue
- identifier: missingType.generics

inferPrivatePropertyTypeFromConstructor: true
checkMissingIterableValueType: false
checkGenericClassInNonGenericObjectType: false
checkAlwaysTrueCheckTypeFunctionCall: false
checkAlwaysTrueStrictComparison: false

services:
- class: Symplify\PHPStanRules\TypeResolver\ClassMethodReturnTypeResolver
- class: Symplify\PHPStanRules\Reflection\MethodCallNodeAnalyzer
- class: Symplify\PHPStanRules\NodeAnalyzer\MethodCall\MethodCallClassConstFetchPositionResolver
- class: Symplify\PHPStanRules\TypeAnalyzer\CallableTypeAnalyzer
- class: Symplify\PHPStanRules\Matcher\ArrayStringAndFnMatcher
- class: Symplify\PHPStanRules\Formatter\RequiredWithMessageFormatter
-
class: Symplify\PHPStanRules\Rules\ForbiddenFuncCallRule
tags: [phpstan.rules.rule]
Expand All @@ -34,4 +25,4 @@ services:
- die
- dump
- compact
- var_dump
- var_dump
51 changes: 0 additions & 51 deletions .code-quality/rector-8_1.php

This file was deleted.

51 changes: 0 additions & 51 deletions .code-quality/rector-8_2.php

This file was deleted.

77 changes: 33 additions & 44 deletions .code-quality/rector.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,49 +3,38 @@
declare(strict_types=1);

use Rector\CodeQuality\Rector\Identical\FlipTypeControlToUseExclusiveTypeRector;
use Rector\CodeQuality\Rector\Isset_\IssetOnPropertyObjectToPropertyExistsRector;
use Rector\CodingStyle\Rector\ClassConst\RemoveFinalFromConstRector;
use Rector\CodingStyle\Rector\PostInc\PostIncDecToPreIncDecRector;
use Rector\Config\RectorConfig;
use Rector\DeadCode\Rector\Cast\RecastingRemovalRector;
use Rector\DeadCode\Rector\Property\RemoveUnusedPrivatePropertyRector;
use Rector\EarlyReturn\Rector\If_\ChangeAndIfToEarlyReturnRector;
use Rector\Naming\Rector\ClassMethod\RenameVariableToMatchNewTypeRector;
use Rector\Naming\Rector\Foreach_\RenameForeachValueVariableToMatchMethodCallReturnTypeRector;
use Rector\Php74\Rector\LNumber\AddLiteralSeparatorToNumberRector;
use Rector\Privatization\Rector\Class_\FinalizeClassesWithoutChildrenRector;
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictConstructorRector;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->paths(
[
__DIR__ . '/../Classes',
__DIR__ . '/../code-quality',
]
);

$rectorConfig->rule(TypedPropertyFromStrictConstructorRector::class);

$rectorConfig->importNames(false);
$rectorConfig->autoloadPaths([__DIR__ . '/../Classes']);
$rectorConfig->cacheDirectory('.cache/rector/upgrade_8-1/');
$rectorConfig->skip(
[
// PHP 8.0
// RemoveFinalFromConstRector::class,

RecastingRemovalRector::class,
PostIncDecToPreIncDecRector::class,
FinalizeClassesWithoutChildrenRector::class,
ChangeAndIfToEarlyReturnRector::class,

IssetOnPropertyObjectToPropertyExistsRector::class,
FlipTypeControlToUseExclusiveTypeRector::class,
RenameVariableToMatchNewTypeRector::class,
AddLiteralSeparatorToNumberRector::class,
RenameForeachValueVariableToMatchMethodCallReturnTypeRector::class,
]
);

$rectorConfig->rule(RemoveUnusedPrivatePropertyRector::class);
};
use Rector\Set\ValueObject\SetList;
use Rector\PHPUnit\Set\PHPUnitSetList;

use Rector\TypeDeclaration\Rector\ClassMethod\AddMethodCallBasedStrictParamTypeRector;
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictSetUpRector;

return RectorConfig::configure()
->withPaths([
__DIR__ . '/../Classes',
__DIR__ . '/../Tests',
__DIR__ . '/rector.php',
])
->withPhpSets(
true
)
->withSets([
SetList::CODE_QUALITY,
SetList::STRICT_BOOLEANS,
SetList::CODING_STYLE,
SetList::DEAD_CODE,
SetList::EARLY_RETURN,
SetList::PRIVATIZATION,
SetList::TYPE_DECLARATION,
SetList::INSTANCEOF,
PHPUnitSetList::PHPUNIT_CODE_QUALITY
])
->withSkip([
TypedPropertyFromStrictSetUpRector::class,
AddMethodCallBasedStrictParamTypeRector::class,
FlipTypeControlToUseExclusiveTypeRector::class,
])
->withAutoloadPaths([__DIR__ . '/../Classes'])
->registerService(RemoveUnusedPrivatePropertyRector::class);
Loading

0 comments on commit f7a037a

Please sign in to comment.