init
This commit is contained in:
parent
83567049a0
commit
36172f251a
8 changed files with 691 additions and 0 deletions
113
config/ecs.php
Normal file
113
config/ecs.php
Normal file
|
@ -0,0 +1,113 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
use PhpCsFixer\Fixer\Basic\BracesFixer;
|
||||
use PhpCsFixer\Fixer\Import\OrderedImportsFixer;
|
||||
use PhpCsFixer\Fixer\Operator\NewWithBracesFixer;
|
||||
use PhpCsFixer\Fixer\PhpTag\BlankLineAfterOpeningTagFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\NoExtraBlankLinesFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\NoWhitespaceInBlankLineFixer;
|
||||
use SlevomatCodingStandard\Sniffs\Classes\ClassConstantVisibilitySniff;
|
||||
use SlevomatCodingStandard\Sniffs\ControlStructures\NewWithoutParenthesesSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Namespaces\AlphabeticallySortedUsesSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Namespaces\DisallowGroupUseSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Namespaces\MultipleUsesPerLineSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Namespaces\NamespaceSpacingSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Namespaces\ReferenceUsedNamesOnlySniff;
|
||||
use SlevomatCodingStandard\Sniffs\Namespaces\UseSpacingSniff;
|
||||
use SlevomatCodingStandard\Sniffs\TypeHints\DeclareStrictTypesSniff;
|
||||
use SlevomatCodingStandard\Sniffs\TypeHints\UnionTypeHintFormatSniff;
|
||||
use Symplify\CodingStandard\Fixer\LineLength\LineLengthFixer;
|
||||
use Symplify\EasyCodingStandard\Config\ECSConfig;
|
||||
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
|
||||
|
||||
return static function (ECSConfig $c): void {
|
||||
$c->skip([
|
||||
BlankLineAfterOpeningTagFixer::class,
|
||||
NewWithBracesFixer::class,
|
||||
OrderedImportsFixer::class,
|
||||
]);
|
||||
|
||||
$c->sets([
|
||||
SetList::ARRAY,
|
||||
SetList::CLEAN_CODE,
|
||||
SetList::COMMENTS,
|
||||
SetList::COMMON,
|
||||
SetList::CONTROL_STRUCTURES,
|
||||
SetList::DOCBLOCK,
|
||||
SetList::NAMESPACES,
|
||||
SetList::PSR_12,
|
||||
SetList::SPACES,
|
||||
SetList::STRICT,
|
||||
SetList::SYMPLIFY,
|
||||
]);
|
||||
|
||||
// force visibility declaration on class constants
|
||||
$c->ruleWithConfiguration(ClassConstantVisibilitySniff::class, [
|
||||
'fixable' => true,
|
||||
]);
|
||||
|
||||
// sort all use statements
|
||||
$c->rules([
|
||||
AlphabeticallySortedUsesSniff::class,
|
||||
DisallowGroupUseSniff::class,
|
||||
MultipleUsesPerLineSniff::class,
|
||||
NamespaceSpacingSniff::class,
|
||||
]);
|
||||
|
||||
// import all namespaces, and event php core functions and classes
|
||||
$c->ruleWithConfiguration(
|
||||
ReferenceUsedNamesOnlySniff::class,
|
||||
[
|
||||
'allowFallbackGlobalConstants' => false,
|
||||
'allowFallbackGlobalFunctions' => false,
|
||||
'allowFullyQualifiedGlobalClasses' => false,
|
||||
'allowFullyQualifiedGlobalConstants' => false,
|
||||
'allowFullyQualifiedGlobalFunctions' => false,
|
||||
'allowFullyQualifiedNameForCollidingClasses' => true,
|
||||
'allowFullyQualifiedNameForCollidingConstants' => true,
|
||||
'allowFullyQualifiedNameForCollidingFunctions' => true,
|
||||
'searchAnnotations' => true,
|
||||
]
|
||||
);
|
||||
|
||||
// define newlines between use statements
|
||||
$c->ruleWithConfiguration(UseSpacingSniff::class, [
|
||||
'linesCountAfterLastUse' => 1,
|
||||
'linesCountBeforeFirstUse' => 1,
|
||||
'linesCountBetweenUseTypes' => 1,
|
||||
]);
|
||||
|
||||
// strict types declaration should be on same line as opening tag
|
||||
$c->ruleWithConfiguration(
|
||||
DeclareStrictTypesSniff::class,
|
||||
[
|
||||
'declareOnFirstLine' => true,
|
||||
'spacesCountAroundEqualsSign' => 0,
|
||||
]
|
||||
);
|
||||
|
||||
// disallow ?Foo typehint in favor of Foo|null
|
||||
$c->ruleWithConfiguration(UnionTypeHintFormatSniff::class, [
|
||||
'nullPosition' => 'last',
|
||||
'shortNullable' => 'no',
|
||||
'withSpaces' => 'no',
|
||||
]);
|
||||
|
||||
// Remove useless parentheses in new statements
|
||||
$c->rule(BracesFixer::class);
|
||||
$c->rule(NewWithoutParenthesesSniff::class);
|
||||
|
||||
// do not inline short multilinestatements
|
||||
$c->ruleWithConfiguration(LineLengthFixer::class, [
|
||||
LineLengthFixer::INLINE_SHORT_LINES => false,
|
||||
]);
|
||||
|
||||
$c->ruleWithConfiguration(
|
||||
NoExtraBlankLinesFixer::class,
|
||||
[
|
||||
'tokens' => ['square_brace_block', 'return', 'extra'],
|
||||
]
|
||||
);
|
||||
|
||||
$c->rule(NoWhitespaceInBlankLineFixer::class);
|
||||
};
|
90
config/rector.php
Normal file
90
config/rector.php
Normal file
|
@ -0,0 +1,90 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
use Rector\CodeQuality\Rector\BooleanAnd\SimplifyEmptyArrayCheckRector;
|
||||
use Rector\CodeQuality\Rector\BooleanNot\ReplaceMultipleBooleanNotRector;
|
||||
use Rector\CodeQuality\Rector\Catch_\ThrowWithPreviousExceptionRector;
|
||||
use Rector\CodeQuality\Rector\ClassMethod\InlineArrayReturnAssignRector;
|
||||
use Rector\CodeQuality\Rector\FuncCall\InlineIsAInstanceOfRector;
|
||||
use Rector\CodeQuality\Rector\Identical\BooleanNotIdenticalToNotIdenticalRector;
|
||||
use Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector;
|
||||
use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector;
|
||||
use Rector\CodingStyle\Rector\ArrowFunction\StaticArrowFunctionRector;
|
||||
use Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector;
|
||||
use Rector\CodingStyle\Rector\Closure\StaticClosureRector;
|
||||
use Rector\CodingStyle\Rector\FuncCall\CountArrayToEmptyArrayComparisonRector;
|
||||
use Rector\CodingStyle\Rector\If_\NullableCompareToNullRector;
|
||||
use Rector\CodingStyle\Rector\Stmt\NewlineAfterStatementRector;
|
||||
use Rector\Config\RectorConfig;
|
||||
use Rector\EarlyReturn\Rector\Foreach_\ChangeNestedForeachIfsToEarlyContinueRector;
|
||||
use Rector\EarlyReturn\Rector\If_\ChangeAndIfToEarlyReturnRector;
|
||||
use Rector\EarlyReturn\Rector\If_\ChangeNestedIfsToEarlyReturnRector;
|
||||
use Rector\EarlyReturn\Rector\If_\ChangeOrIfContinueToMultiContinueRector;
|
||||
use Rector\EarlyReturn\Rector\If_\ChangeOrIfReturnToEarlyReturnRector;
|
||||
use Rector\EarlyReturn\Rector\Return_\PreparedValueToEarlyReturnRector;
|
||||
use Rector\EarlyReturn\Rector\Return_\ReturnBinaryAndToEarlyReturnRector;
|
||||
use Rector\EarlyReturn\Rector\Return_\ReturnBinaryOrToEarlyReturnRector;
|
||||
use Rector\EarlyReturn\Rector\StmtsAwareInterface\ReturnEarlyIfVariableRector;
|
||||
use Rector\Set\ValueObject\LevelSetList;
|
||||
use Rector\TypeDeclaration\Rector\ArrowFunction\AddArrowFunctionReturnTypeRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\AddArrayParamDocTypeRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\AddArrayReturnDocTypeRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\AddMethodCallBasedStrictParamTypeRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\AddReturnTypeDeclarationBasedOnParentClassMethodRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\ParamTypeByMethodCallTypeRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\ParamTypeByParentCallTypeRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromReturnNewRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictBoolReturnExprRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNativeCallRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNewArrayRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedPropertyRector;
|
||||
use Rector\TypeDeclaration\Rector\Closure\AddClosureReturnTypeRector;
|
||||
use Rector\TypeDeclaration\Rector\FunctionLike\ReturnTypeDeclarationRector;
|
||||
use Rector\TypeDeclaration\Rector\Param\ParamTypeFromStrictTypedPropertyRector;
|
||||
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictConstructorRector;
|
||||
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictGetterMethodReturnTypeRector;
|
||||
|
||||
return static function (RectorConfig $c): void {
|
||||
$c->sets([LevelSetList::UP_TO_PHP_81]);
|
||||
$c->rules([
|
||||
AddArrayParamDocTypeRector::class,
|
||||
AddArrayReturnDocTypeRector::class,
|
||||
AddArrowFunctionReturnTypeRector::class,
|
||||
AddClosureReturnTypeRector::class,
|
||||
AddMethodCallBasedStrictParamTypeRector::class,
|
||||
AddReturnTypeDeclarationBasedOnParentClassMethodRector::class,
|
||||
BooleanNotIdenticalToNotIdenticalRector::class,
|
||||
ChangeAndIfToEarlyReturnRector::class,
|
||||
ChangeNestedForeachIfsToEarlyContinueRector::class,
|
||||
ChangeNestedIfsToEarlyReturnRector::class,
|
||||
ChangeOrIfContinueToMultiContinueRector::class,
|
||||
ChangeOrIfReturnToEarlyReturnRector::class,
|
||||
CountArrayToEmptyArrayComparisonRector::class,
|
||||
ExplicitBoolCompareRector::class,
|
||||
InlineArrayReturnAssignRector::class,
|
||||
InlineIsAInstanceOfRector::class,
|
||||
NewlineAfterStatementRector::class,
|
||||
NewlineBeforeNewAssignSetRector::class,
|
||||
NullableCompareToNullRector::class,
|
||||
ParamTypeByMethodCallTypeRector::class,
|
||||
ParamTypeByParentCallTypeRector::class,
|
||||
ParamTypeFromStrictTypedPropertyRector::class,
|
||||
PreparedValueToEarlyReturnRector::class,
|
||||
ReplaceMultipleBooleanNotRector::class,
|
||||
ReturnBinaryAndToEarlyReturnRector::class,
|
||||
ReturnBinaryOrToEarlyReturnRector::class,
|
||||
ReturnEarlyIfVariableRector::class,
|
||||
ReturnTypeDeclarationRector::class,
|
||||
ReturnTypeFromReturnNewRector::class,
|
||||
ReturnTypeFromStrictBoolReturnExprRector::class,
|
||||
ReturnTypeFromStrictNativeCallRector::class,
|
||||
ReturnTypeFromStrictNewArrayRector::class,
|
||||
ReturnTypeFromStrictTypedPropertyRector::class,
|
||||
SimplifyConditionsRector::class,
|
||||
SimplifyEmptyArrayCheckRector::class,
|
||||
StaticArrowFunctionRector::class,
|
||||
StaticClosureRector::class,
|
||||
ThrowWithPreviousExceptionRector::class,
|
||||
TypedPropertyFromStrictConstructorRector::class,
|
||||
TypedPropertyFromStrictGetterMethodReturnTypeRector::class,
|
||||
]);
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue