diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 7a32cfbdef1..5dd3f0159f3 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -28,6 +28,7 @@ jobs: - 'e2e/applied-polyfill-php80' - 'e2e/config-dist-fallback' - 'e2e/config-file-priority' + - 'e2e/custom-file-extensions' - 'e2e/only-option' - 'e2e/parallel-custom-config' - 'e2e/parallel-unused-skips' diff --git a/e2e/custom-file-extensions/.gitignore b/e2e/custom-file-extensions/.gitignore new file mode 100644 index 00000000000..61ead86667c --- /dev/null +++ b/e2e/custom-file-extensions/.gitignore @@ -0,0 +1 @@ +/vendor diff --git a/e2e/custom-file-extensions/composer.json b/e2e/custom-file-extensions/composer.json new file mode 100644 index 00000000000..8b5ca727be7 --- /dev/null +++ b/e2e/custom-file-extensions/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "php": "^8.1" + } +} diff --git a/e2e/custom-file-extensions/expected-output.diff b/e2e/custom-file-extensions/expected-output.diff new file mode 100644 index 00000000000..1d3e214b4a4 --- /dev/null +++ b/e2e/custom-file-extensions/expected-output.diff @@ -0,0 +1,22 @@ +1 file with changes +=================== + +1) src/ChildService.inc:4 + + ---------- begin diff ---------- +@@ Line 4 @@ + + class ChildService extends ParentService + { +- public function run($value) ++ public function run($value, $flag = false) + { + } + } + ----------- end diff ----------- + +Applied rules: + * AddParamBasedOnParentClassMethodRector + + + [OK] 1 file would have been changed (dry-run) by Rector diff --git a/e2e/custom-file-extensions/rector.php b/e2e/custom-file-extensions/rector.php new file mode 100644 index 00000000000..5382146d0ac --- /dev/null +++ b/e2e/custom-file-extensions/rector.php @@ -0,0 +1,11 @@ +withPaths([__DIR__ . '/src']) + ->withFileExtensions(['php', 'inc']) + ->withRules([AddParamBasedOnParentClassMethodRector::class]); diff --git a/e2e/custom-file-extensions/src/ChildService.inc b/e2e/custom-file-extensions/src/ChildService.inc new file mode 100644 index 00000000000..b16860183a5 --- /dev/null +++ b/e2e/custom-file-extensions/src/ChildService.inc @@ -0,0 +1,10 @@ +container = $containerFactory->create( SimpleParameterProvider::provideStringParameter(Option::CONTAINER_CACHE_DIRECTORY), $additionalConfigFiles, - [] + [], + // let PHPStan find classes in files with any configured extension, not only in *.php ones + additionalParameters: [ + 'fileExtensions' => SimpleParameterProvider::provideArrayParameter(Option::FILE_EXTENSIONS), + ] ); } catch (Throwable $throwable) { if ($throwable->getMessage() === "File 'phar://phpstan.phar/conf/bleedingEdge.neon' is missing or is not readable.") {