diff --git a/composer.json b/composer.json index d59f7fa..f337bd3 100644 --- a/composer.json +++ b/composer.json @@ -6,25 +6,25 @@ "php": "^8.4", "composer-plugin-api": "^2.0", "canvural/larastan-strict-rules": "^3.0", - "larastan/larastan": "^3.1", + "larastan/larastan": "^3.9", "phpstan/phpstan": "^2.1", "phpstan/phpstan-deprecation-rules": "^2.0", "phpstan/phpstan-mockery": "^2.0", - "rector/rector": "^2.0", - "slevomat/coding-standard": "^8.16", - "spaze/phpstan-disallowed-calls": "^4.4", - "symplify/easy-coding-standard": "^12.6" + "rector/rector": "^2.3", + "slevomat/coding-standard": "^8.27.1", + "spaze/phpstan-disallowed-calls": "^4.8", + "symplify/easy-coding-standard": "^13.0" }, "require-dev": { - "composer/composer": "^2.8", - "friendsofphp/php-cs-fixer": "^3.70", - "orchestra/testbench": "^9.11", - "pestphp/pest": "^4.1", + "composer/composer": "^2.9", + "friendsofphp/php-cs-fixer": "^3.94", + "orchestra/testbench": "^9.16", + "pestphp/pest": "^4.4", "spatie/invade": "^1.1.1", - "squizlabs/php_codesniffer": "^3.11" + "squizlabs/php_codesniffer": "^4.0.1" }, "conflict": { - "squizlabs/php_codesniffer": ">= 4" + "squizlabs/php_codesniffer": ">= 5" }, "autoload": { "psr-4": { diff --git a/src/PHPStan/DeclareStrictTypesRule.php b/src/PHPStan/DeclareStrictTypesRule.php index de7d319..ecf626e 100644 --- a/src/PHPStan/DeclareStrictTypesRule.php +++ b/src/PHPStan/DeclareStrictTypesRule.php @@ -35,7 +35,7 @@ public function processNode(Node $node, Scope $scope): array foreach ($firstNode->declares as $declare) { if ( 'strict_types' === $declare->key->toLowerString() - && $declare->value instanceof Node\Scalar\LNumber + && $declare->value instanceof Node\Scalar\Int_ && 1 === $declare->value->value ) { return []; diff --git a/src/Sniffs/Classes/ExceptionSuffixSniff.php b/src/Sniffs/Classes/ExceptionSuffixSniff.php index d87dddd..bb942c7 100644 --- a/src/Sniffs/Classes/ExceptionSuffixSniff.php +++ b/src/Sniffs/Classes/ExceptionSuffixSniff.php @@ -17,7 +17,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { $baseClassNameLength = 0; diff --git a/src/Sniffs/Comments/DisallowTodoCommentsSniff.php b/src/Sniffs/Comments/DisallowTodoCommentsSniff.php index 92ab19d..a4e1e02 100644 --- a/src/Sniffs/Comments/DisallowTodoCommentsSniff.php +++ b/src/Sniffs/Comments/DisallowTodoCommentsSniff.php @@ -16,7 +16,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { // Check if a to do string if (stripos($phpcsFile->getTokensAsString($stackPtr, 1), 'TODO') === false) { diff --git a/src/Sniffs/Enums/PascalCasingEnumCasesSniff.php b/src/Sniffs/Enums/PascalCasingEnumCasesSniff.php index 371ccd5..9972b7e 100644 --- a/src/Sniffs/Enums/PascalCasingEnumCasesSniff.php +++ b/src/Sniffs/Enums/PascalCasingEnumCasesSniff.php @@ -17,7 +17,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { $nameRef = $stackPtr + 2; $caseName = $phpcsFile->getTokensAsString($nameRef, 1); diff --git a/src/Sniffs/Functions/DisallowCompactUsageSniff.php b/src/Sniffs/Functions/DisallowCompactUsageSniff.php index df82d4b..38269de 100644 --- a/src/Sniffs/Functions/DisallowCompactUsageSniff.php +++ b/src/Sniffs/Functions/DisallowCompactUsageSniff.php @@ -15,7 +15,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { $methodName = $phpcsFile->getTokensAsString($stackPtr, 1); diff --git a/src/Sniffs/Laravel/ConfigFilenameKebabCaseSniff.php b/src/Sniffs/Laravel/ConfigFilenameKebabCaseSniff.php index 1c9eeed..1ebe430 100644 --- a/src/Sniffs/Laravel/ConfigFilenameKebabCaseSniff.php +++ b/src/Sniffs/Laravel/ConfigFilenameKebabCaseSniff.php @@ -15,7 +15,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { $path = $phpcsFile->getFilename(); diff --git a/src/Sniffs/Laravel/DisallowBladeOutsideOfResourcesDirectorySniff.php b/src/Sniffs/Laravel/DisallowBladeOutsideOfResourcesDirectorySniff.php index f932299..e4f33eb 100644 --- a/src/Sniffs/Laravel/DisallowBladeOutsideOfResourcesDirectorySniff.php +++ b/src/Sniffs/Laravel/DisallowBladeOutsideOfResourcesDirectorySniff.php @@ -18,7 +18,7 @@ public function register(): array return [T_INLINE_HTML]; } - public function process(File $phpcsFile, $stackPtr): void + public function process(File $phpcsFile, int $stackPtr): void { if (! str_ends_with($phpcsFile->getFilename(), '.blade.php')) { return; diff --git a/src/Sniffs/Laravel/DisallowEnvUsageSniff.php b/src/Sniffs/Laravel/DisallowEnvUsageSniff.php index 72bc3c7..0553cfc 100644 --- a/src/Sniffs/Laravel/DisallowEnvUsageSniff.php +++ b/src/Sniffs/Laravel/DisallowEnvUsageSniff.php @@ -14,7 +14,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { $string = $phpcsFile->getTokensAsString($stackPtr, 1); $path = $phpcsFile->getFilename(); diff --git a/src/Sniffs/Laravel/DisallowHasFactorySniff.php b/src/Sniffs/Laravel/DisallowHasFactorySniff.php index 5230608..3e30a73 100644 --- a/src/Sniffs/Laravel/DisallowHasFactorySniff.php +++ b/src/Sniffs/Laravel/DisallowHasFactorySniff.php @@ -19,7 +19,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { $traitNamePointer = $stackPtr + 2; $className = Str::before($phpcsFile->getTokensAsString($traitNamePointer, 10), ';'); diff --git a/src/Sniffs/Laravel/EventListenerSuffixSniff.php b/src/Sniffs/Laravel/EventListenerSuffixSniff.php index 3f38fef..139ed02 100644 --- a/src/Sniffs/Laravel/EventListenerSuffixSniff.php +++ b/src/Sniffs/Laravel/EventListenerSuffixSniff.php @@ -17,7 +17,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { $path = $phpcsFile->getFilename(); diff --git a/src/Sniffs/PhpDoc/DisallowParamNoTypeOrCommentSniff.php b/src/Sniffs/PhpDoc/DisallowParamNoTypeOrCommentSniff.php index 70adfa4..062edde 100644 --- a/src/Sniffs/PhpDoc/DisallowParamNoTypeOrCommentSniff.php +++ b/src/Sniffs/PhpDoc/DisallowParamNoTypeOrCommentSniff.php @@ -15,7 +15,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { // Check if @param if (! str_contains($phpcsFile->getTokensAsString($stackPtr, 1), '@param')) { diff --git a/src/Sniffs/PhpDoc/PropertyDollarSignSniff.php b/src/Sniffs/PhpDoc/PropertyDollarSignSniff.php index ec9cc7a..b18be9e 100644 --- a/src/Sniffs/PhpDoc/PropertyDollarSignSniff.php +++ b/src/Sniffs/PhpDoc/PropertyDollarSignSniff.php @@ -16,7 +16,7 @@ public function register(): array ]; } - public function process(File $phpcsFile, $stackPtr) + public function process(File $phpcsFile, int $stackPtr) { try { $propertyDoc = PropertyDoc::from($this->getLineOfDocblock($phpcsFile, $stackPtr)); diff --git a/src/WorksomeEcsConfig.php b/src/WorksomeEcsConfig.php index 3d26304..5111f35 100644 --- a/src/WorksomeEcsConfig.php +++ b/src/WorksomeEcsConfig.php @@ -9,11 +9,11 @@ use PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\SpaceAfterNotSniff; use PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\ForbiddenFunctionsSniff; use PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\LowerCaseKeywordSniff; +use PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\LanguageConstructSpacingSniff; use PHP_CodeSniffer\Standards\PSR2\Sniffs\Files\EndFileNewlineSniff; use PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\MethodDeclarationSniff; use PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\LowercaseDeclarationSniff; use PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\CommentedOutCodeSniff; -use PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\LanguageConstructSpacingSniff; use PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer; use PhpCsFixer\Fixer\CastNotation\ShortScalarCastFixer; use PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer; diff --git a/tests/PHPStan/DeclareStrictTypesRule/DelcareStrictTypesRuleTest.php b/tests/PHPStan/DeclareStrictTypesRule/DeclareStrictTypesRuleTest.php similarity index 100% rename from tests/PHPStan/DeclareStrictTypesRule/DelcareStrictTypesRuleTest.php rename to tests/PHPStan/DeclareStrictTypesRule/DeclareStrictTypesRuleTest.php diff --git a/tests/Pest.php b/tests/Pest.php index b34298b..e772365 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -124,6 +124,11 @@ function checkFile(string $filePath, array $sniffProperties = []): LocalFile $codeSniffer->init(); if (count($sniffProperties) > 0) { + $sniffProperties = array_map( + fn (mixed $property) => ['scope' => 'sniff', 'value' => $property], + $sniffProperties + ); + $codeSniffer->ruleset->ruleset[getSniffName($sniffClassName)]['properties'] = $sniffProperties; } @@ -179,7 +184,6 @@ function hasError(array $errorsOnLine, string $sniffCode): bool return $hasError; } - function getFormattedErrors(array $errors): string { return implode(PHP_EOL, array_map(static function (array $errors): string {