From 2bcb3945b253fd8a5ed2816fcdc94cda6f6ecd44 Mon Sep 17 00:00:00 2001 From: Tomas Norre Mikkelsen Date: Tue, 12 Nov 2024 19:07:29 +0100 Subject: [PATCH 1/6] ci: Fix strict types sniff --- phpcs.xml | 2 +- .../{ => StrictTypes}/ExplainStrictTypesSniff.php | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) rename src/Sniffs/{ => StrictTypes}/ExplainStrictTypesSniff.php (87%) diff --git a/phpcs.xml b/phpcs.xml index b31d1cf6..99478d5a 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -44,7 +44,7 @@ - + */*Test\.php */.meta/*\.php src/* diff --git a/src/Sniffs/ExplainStrictTypesSniff.php b/src/Sniffs/StrictTypes/ExplainStrictTypesSniff.php similarity index 87% rename from src/Sniffs/ExplainStrictTypesSniff.php rename to src/Sniffs/StrictTypes/ExplainStrictTypesSniff.php index 5b9a4d31..32ee71e2 100644 --- a/src/Sniffs/ExplainStrictTypesSniff.php +++ b/src/Sniffs/StrictTypes/ExplainStrictTypesSniff.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Exercism\Sniffs; +namespace Exercism\Sniffs\StrictTypes; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Fixer; @@ -48,13 +48,13 @@ public function register(): array ]; } - public function process(File $file, $stackPtr) + public function process(File $phpcsFile, $stackPtr): void { - $this->fixer = $file->fixer; + $this->fixer = $phpcsFile->fixer; $this->position = $stackPtr; - if (!$file->findPrevious($this->tokens, $stackPtr)) { - $file->addFixableError( + if (!$phpcsFile->findPrevious($this->tokens, $stackPtr)) { + $phpcsFile->addFixableError( 'Missing explanation of declaration of strict types.', $stackPtr - 1, self::class From 57395074618d7ac7fbc03dff48d32eeeb40d96ff Mon Sep 17 00:00:00 2001 From: jrfnl Date: Fri, 15 Nov 2024 10:44:59 +0100 Subject: [PATCH 2/6] Properly comply with PHPCS naming conventions Note: I've not changed the `composer.json` file, but it could also be considered to leave the sniff namespace the same and to change the `"Exercism\\": "src",` config in the `composer.json` file to `"Exercism\\": "src\\Exercism",`. --- phpcs.xml | 2 +- .../Sniffs/StrictTypes/ExplainStrictTypesSniff.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/{ => Exercism}/Sniffs/StrictTypes/ExplainStrictTypesSniff.php (97%) diff --git a/phpcs.xml b/phpcs.xml index 99478d5a..c2d9de5f 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -44,7 +44,7 @@ - + */*Test\.php */.meta/*\.php src/* diff --git a/src/Sniffs/StrictTypes/ExplainStrictTypesSniff.php b/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php similarity index 97% rename from src/Sniffs/StrictTypes/ExplainStrictTypesSniff.php rename to src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php index 32ee71e2..dbc95526 100644 --- a/src/Sniffs/StrictTypes/ExplainStrictTypesSniff.php +++ b/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Exercism\Sniffs\StrictTypes; +namespace Exercism\Exercism\Sniffs\StrictTypes; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Fixer; From 448baf49eef25ed7b687a815fa2feb77fc34ba7b Mon Sep 17 00:00:00 2001 From: jrfnl Date: Fri, 15 Nov 2024 10:46:43 +0100 Subject: [PATCH 3/6] ExplainStrictTypesSniff: use proper error code The class name is already translated to a sniff name, so no need to duplicate it. Also not a good idea to use backslashes in the error code as that makes configuration in the XML file more fiddly. --- src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php b/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php index dbc95526..374b3313 100644 --- a/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php +++ b/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php @@ -57,7 +57,7 @@ public function process(File $phpcsFile, $stackPtr): void $phpcsFile->addFixableError( 'Missing explanation of declaration of strict types.', $stackPtr - 1, - self::class + 'Missing' ); $this->fix(); } From 212c4877ef8f9f70a4df5b176d3b4f5edd98f35c Mon Sep 17 00:00:00 2001 From: jrfnl Date: Fri, 15 Nov 2024 10:47:50 +0100 Subject: [PATCH 4/6] PHPCS config: include sniff from installed standard by name --- phpcs.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpcs.xml b/phpcs.xml index c2d9de5f..c88f737e 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -34,7 +34,7 @@ */concept/city-office/* */concept/windowing-system/* - + */.meta/*\.php */concept/* */hello-world/* From 26c3b3a7ab40b5de4d3e0c6ca6ddbc1a2e3cf963 Mon Sep 17 00:00:00 2001 From: Tomas Norre Mikkelsen Date: Mon, 18 Nov 2024 16:42:43 +0100 Subject: [PATCH 5/6] update squizlabs/php_codesniffer dependency --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index ee007c67..a88f7c86 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ "php": "^8.1", "phpunit/phpunit": "^10.5", "slevomat/coding-standard": "^8.14.1", - "squizlabs/php_codesniffer": "^3.9" + "squizlabs/php_codesniffer": "^3.11.1" }, "scripts": { "post-install-cmd": [ From 836a54fe42b553559c3ba73d21bbcdf0723e6048 Mon Sep 17 00:00:00 2001 From: Tomas Norre Mikkelsen Date: Mon, 18 Nov 2024 18:07:24 +0100 Subject: [PATCH 6/6] Update namespace + composer autoload --- composer.json | 2 +- src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index a88f7c86..e7aba8f0 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "exercism/php", "autoload": { - "Exercism\\": "src", + "Exercism\\Sniffs\\": "src/Exercism/Sniffs", "Exercism\\Exercises\\": "exercises" }, "config": { diff --git a/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php b/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php index 374b3313..f232391a 100644 --- a/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php +++ b/src/Exercism/Sniffs/StrictTypes/ExplainStrictTypesSniff.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Exercism\Exercism\Sniffs\StrictTypes; +namespace Exercism\Sniffs\StrictTypes; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Fixer;