From 319f9fd216fefeea1ad693004bc3a09a27763d99 Mon Sep 17 00:00:00 2001 From: Bart van den Broeck Date: Thu, 11 Dec 2025 14:26:34 +0100 Subject: [PATCH 1/2] use local phpunit xsd and include phpstan stricts rules --- phpstan.neon.dist | 2 ++ phpunit.xml.dist | 6 +++--- .../config/Drupal/10.x/Module/phpstan.neon.dist | 2 ++ .../config/Drupal/10.x/Module/phpunit.xml.dist | 6 +++--- .../config/Drupal/10.x/Project/phpstan.neon.dist | 2 ++ .../config/Drupal/10.x/Project/phpunit.xml.dist | 6 +++--- .../config/Drupal/11.x/Module/phpstan.neon.dist | 2 ++ .../config/Drupal/11.x/Module/phpunit.xml.dist | 6 +++--- .../config/Drupal/11.x/Project/phpstan.neon.dist | 2 ++ .../config/Drupal/11.x/Project/phpunit.xml.dist | 6 +++--- .../config/Laravel/11.x/Package/phpstan.neon.dist | 1 + .../config/Laravel/11.x/Package/phpunit.xml.dist | 14 ++++++++------ .../config/Laravel/11.x/Project/phpstan.neon.dist | 5 +++++ .../config/Laravel/11.x/Project/phpunit.xml.dist | 12 +++++++----- resources/config/Standard/phpstan.neon.dist | 2 ++ resources/config/Standard/phpunit.xml.dist | 6 +++--- 16 files changed, 51 insertions(+), 29 deletions(-) diff --git a/phpstan.neon.dist b/phpstan.neon.dist index a2df6f9..9b8ee11 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -6,6 +6,8 @@ # This file was generated using XpertSelect/Tools. Please refer to the README for more information. +includes: + - ./vendor/phpstan/phpstan-strict-rules/rules.neon parameters: level: 8 paths: diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 603adbd..755a1fd 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,6 +1,6 @@ @@ -21,11 +21,11 @@ - + tests/Unit - + tests/Functional diff --git a/resources/config/Drupal/10.x/Module/phpstan.neon.dist b/resources/config/Drupal/10.x/Module/phpstan.neon.dist index 5b6c90e..fbfc591 100644 --- a/resources/config/Drupal/10.x/Module/phpstan.neon.dist +++ b/resources/config/Drupal/10.x/Module/phpstan.neon.dist @@ -7,6 +7,8 @@ # This file was generated using XpertSelect/Tools. Please refer to the README for more information. +includes: + - ./vendor/phpstan/phpstan-strict-rules/rules.neon parameters: level: 8 fileExtensions: diff --git a/resources/config/Drupal/10.x/Module/phpunit.xml.dist b/resources/config/Drupal/10.x/Module/phpunit.xml.dist index 50e40b5..624f524 100644 --- a/resources/config/Drupal/10.x/Module/phpunit.xml.dist +++ b/resources/config/Drupal/10.x/Module/phpunit.xml.dist @@ -1,6 +1,6 @@ @@ -17,11 +17,11 @@ - + tests/Unit - + tests/Functional diff --git a/resources/config/Drupal/10.x/Project/phpstan.neon.dist b/resources/config/Drupal/10.x/Project/phpstan.neon.dist index 3053b98..f66b4a1 100644 --- a/resources/config/Drupal/10.x/Project/phpstan.neon.dist +++ b/resources/config/Drupal/10.x/Project/phpstan.neon.dist @@ -7,6 +7,8 @@ # This file was generated using XpertSelect/Tools. Please refer to the README for more information. +includes: + - ./vendor/phpstan/phpstan-strict-rules/rules.neon parameters: level: 8 fileExtensions: diff --git a/resources/config/Drupal/10.x/Project/phpunit.xml.dist b/resources/config/Drupal/10.x/Project/phpunit.xml.dist index 9222a23..f7634bc 100644 --- a/resources/config/Drupal/10.x/Project/phpunit.xml.dist +++ b/resources/config/Drupal/10.x/Project/phpunit.xml.dist @@ -1,6 +1,6 @@ @@ -19,11 +19,11 @@ - + tests/Unit - + tests/Functional diff --git a/resources/config/Drupal/11.x/Module/phpstan.neon.dist b/resources/config/Drupal/11.x/Module/phpstan.neon.dist index 5b6c90e..fbfc591 100644 --- a/resources/config/Drupal/11.x/Module/phpstan.neon.dist +++ b/resources/config/Drupal/11.x/Module/phpstan.neon.dist @@ -7,6 +7,8 @@ # This file was generated using XpertSelect/Tools. Please refer to the README for more information. +includes: + - ./vendor/phpstan/phpstan-strict-rules/rules.neon parameters: level: 8 fileExtensions: diff --git a/resources/config/Drupal/11.x/Module/phpunit.xml.dist b/resources/config/Drupal/11.x/Module/phpunit.xml.dist index 603adbd..755a1fd 100644 --- a/resources/config/Drupal/11.x/Module/phpunit.xml.dist +++ b/resources/config/Drupal/11.x/Module/phpunit.xml.dist @@ -1,6 +1,6 @@ @@ -21,11 +21,11 @@ - + tests/Unit - + tests/Functional diff --git a/resources/config/Drupal/11.x/Project/phpstan.neon.dist b/resources/config/Drupal/11.x/Project/phpstan.neon.dist index 3053b98..f66b4a1 100644 --- a/resources/config/Drupal/11.x/Project/phpstan.neon.dist +++ b/resources/config/Drupal/11.x/Project/phpstan.neon.dist @@ -7,6 +7,8 @@ # This file was generated using XpertSelect/Tools. Please refer to the README for more information. +includes: + - ./vendor/phpstan/phpstan-strict-rules/rules.neon parameters: level: 8 fileExtensions: diff --git a/resources/config/Drupal/11.x/Project/phpunit.xml.dist b/resources/config/Drupal/11.x/Project/phpunit.xml.dist index 4058443..f993e48 100644 --- a/resources/config/Drupal/11.x/Project/phpunit.xml.dist +++ b/resources/config/Drupal/11.x/Project/phpunit.xml.dist @@ -1,6 +1,6 @@ @@ -23,11 +23,11 @@ - + tests/Unit - + tests/Functional diff --git a/resources/config/Laravel/11.x/Package/phpstan.neon.dist b/resources/config/Laravel/11.x/Package/phpstan.neon.dist index 00d9f2b..40f784a 100644 --- a/resources/config/Laravel/11.x/Package/phpstan.neon.dist +++ b/resources/config/Laravel/11.x/Package/phpstan.neon.dist @@ -8,6 +8,7 @@ # This file was generated using XpertSelect/Tools. Please refer to the README for more information. includes: + - ./vendor/phpstan/phpstan-strict-rules/rules.neon - ./vendor/larastan/larastan/extension.neon - ./vendor/wterberg/phpstan-laravel/extension.neon parameters: diff --git a/resources/config/Laravel/11.x/Package/phpunit.xml.dist b/resources/config/Laravel/11.x/Package/phpunit.xml.dist index f3da190..c7b2ff1 100644 --- a/resources/config/Laravel/11.x/Package/phpunit.xml.dist +++ b/resources/config/Laravel/11.x/Package/phpunit.xml.dist @@ -1,6 +1,6 @@ @@ -21,11 +21,11 @@ - + tests/Unit - + tests/Functional @@ -34,9 +34,11 @@ - - - + + + + + diff --git a/resources/config/Laravel/11.x/Project/phpstan.neon.dist b/resources/config/Laravel/11.x/Project/phpstan.neon.dist index 11d53e8..8fc4814 100644 --- a/resources/config/Laravel/11.x/Project/phpstan.neon.dist +++ b/resources/config/Laravel/11.x/Project/phpstan.neon.dist @@ -8,10 +8,15 @@ # This file was generated using XpertSelect/Tools. Please refer to the README for more information. includes: + - ./vendor/phpstan/phpstan-strict-rules/rules.neon - ./vendor/larastan/larastan/extension.neon - ./vendor/wterberg/phpstan-laravel/extension.neon parameters: level: 8 paths: - app + - bootstrap + - database + excludePaths: + - bootstrap/cache tipsOfTheDay: false diff --git a/resources/config/Laravel/11.x/Project/phpunit.xml.dist b/resources/config/Laravel/11.x/Project/phpunit.xml.dist index 9e6abb2..7bac8de 100644 --- a/resources/config/Laravel/11.x/Project/phpunit.xml.dist +++ b/resources/config/Laravel/11.x/Project/phpunit.xml.dist @@ -21,11 +21,11 @@ - + tests/Unit - + tests/Functional @@ -34,9 +34,11 @@ - - - + + + + + diff --git a/resources/config/Standard/phpstan.neon.dist b/resources/config/Standard/phpstan.neon.dist index a2df6f9..9b8ee11 100644 --- a/resources/config/Standard/phpstan.neon.dist +++ b/resources/config/Standard/phpstan.neon.dist @@ -6,6 +6,8 @@ # This file was generated using XpertSelect/Tools. Please refer to the README for more information. +includes: + - ./vendor/phpstan/phpstan-strict-rules/rules.neon parameters: level: 8 paths: diff --git a/resources/config/Standard/phpunit.xml.dist b/resources/config/Standard/phpunit.xml.dist index 603adbd..755a1fd 100644 --- a/resources/config/Standard/phpunit.xml.dist +++ b/resources/config/Standard/phpunit.xml.dist @@ -1,6 +1,6 @@ @@ -21,11 +21,11 @@ - + tests/Unit - + tests/Functional -- GitLab From cc41bdd940977c240b5414f8f534894f290fa6cb Mon Sep 17 00:00:00 2001 From: Bart van den Broeck Date: Thu, 11 Dec 2025 15:20:21 +0100 Subject: [PATCH 2/2] phpstan --- src/Services/DependencyService.php | 2 +- src/Services/ProjectClassifierService.php | 2 +- src/ToolsPlugin.php | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Services/DependencyService.php b/src/Services/DependencyService.php index e1cd398..9bd8e3b 100644 --- a/src/Services/DependencyService.php +++ b/src/Services/DependencyService.php @@ -33,7 +33,7 @@ final readonly class DependencyService */ public function __construct(string $composerFilePath = '') { - $this->composerFilePath = empty($composerFilePath) ? Factory::getComposerFile() : $composerFilePath; + $this->composerFilePath = '' === $composerFilePath ? Factory::getComposerFile() : $composerFilePath; } /** diff --git a/src/Services/ProjectClassifierService.php b/src/Services/ProjectClassifierService.php index 30c61dd..e834c58 100644 --- a/src/Services/ProjectClassifierService.php +++ b/src/Services/ProjectClassifierService.php @@ -221,6 +221,6 @@ final readonly class ProjectClassifierService */ private function isModuleOrPackage(string $type): bool { - return in_array($type, self::MODULE_OR_PACKAGE_COMPOSER_TYPES); + return in_array($type, self::MODULE_OR_PACKAGE_COMPOSER_TYPES, true); } } diff --git a/src/ToolsPlugin.php b/src/ToolsPlugin.php index 69e46de..3734965 100644 --- a/src/ToolsPlugin.php +++ b/src/ToolsPlugin.php @@ -118,7 +118,8 @@ final class ToolsPlugin implements PluginInterface, EventSubscriberInterface */ private function getProjectRoot(Composer $composer): string { - $vendorDir = $composer->getConfig()->get('vendor-dir') ?: 'vendor'; + $vendorDir = $composer->getConfig()->get('vendor-dir') ?? null; + $vendorDir = is_string($vendorDir) && '' !== $vendorDir ? $vendorDir : 'vendor'; if (!$this->isAbsolutePath($vendorDir)) { $composerFile = Factory::getComposerFile(); @@ -126,7 +127,8 @@ final class ToolsPlugin implements PluginInterface, EventSubscriberInterface $vendorDir = $baseDir . DIRECTORY_SEPARATOR . $vendorDir; } - $vendorDir = realpath($vendorDir) ?: $vendorDir; + $realPath = realpath($vendorDir); + $vendorDir = is_string($realPath) ? $realPath : $vendorDir; return dirname($vendorDir); } @@ -147,6 +149,6 @@ final class ToolsPlugin implements PluginInterface, EventSubscriberInterface return true; } - return preg_match('#^[A-Za-z]:\\\\#', $path) || strpos($path, '\\\\') === 0; + return boolval(preg_match('#^[A-Za-z]:\\\\#', $path)) || strpos($path, '\\\\') === 0; } } -- GitLab