From 03310f9f2bcd91b863f4703ba1d134902bc2524b Mon Sep 17 00:00:00 2001 From: soyuka Date: Thu, 10 Apr 2025 14:38:03 +0200 Subject: [PATCH] fix(symfony): do not ignore Test files on symfony fixes #7067 --- src/Laravel/ApiPlatformDeferredProvider.php | 2 +- src/Metadata/Util/ReflectionClassRecursiveIterator.php | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Laravel/ApiPlatformDeferredProvider.php b/src/Laravel/ApiPlatformDeferredProvider.php index c7d2e622ec4..f69d2d3b5ad 100644 --- a/src/Laravel/ApiPlatformDeferredProvider.php +++ b/src/Laravel/ApiPlatformDeferredProvider.php @@ -95,7 +95,7 @@ class ApiPlatformDeferredProvider extends ServiceProvider implements DeferrableP public function register(): void { $directory = app_path(); - $classes = ReflectionClassRecursiveIterator::getReflectionClassesFromDirectories([$directory]); + $classes = ReflectionClassRecursiveIterator::getReflectionClassesFromDirectories([$directory], '(?!.*Test\.php$)'); $this->autoconfigure($classes, QueryExtensionInterface::class, [FilterQueryExtension::class]); $this->app->singleton(ItemProvider::class, function (Application $app) { diff --git a/src/Metadata/Util/ReflectionClassRecursiveIterator.php b/src/Metadata/Util/ReflectionClassRecursiveIterator.php index 7ab01be81d4..c3122303dca 100644 --- a/src/Metadata/Util/ReflectionClassRecursiveIterator.php +++ b/src/Metadata/Util/ReflectionClassRecursiveIterator.php @@ -33,10 +33,11 @@ private function __construct() /** * @param string[] $directories + * @param string $ignoreRegex Laravel uses (?!.*Test\.php$) to avoid loading pest class tests * * @return array */ - public static function getReflectionClassesFromDirectories(array $directories): array + public static function getReflectionClassesFromDirectories(array $directories, string $ignoreRegex = ''): array { $id = hash('xxh3', implode('', $directories)); if (isset(self::$localCache[$id])) { @@ -50,7 +51,7 @@ public static function getReflectionClassesFromDirectories(array $directories): new \RecursiveDirectoryIterator($path, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS), \RecursiveIteratorIterator::LEAVES_ONLY ), - '/^(?!.*Test\.php$).+\.php$/i', + '/^'.$ignoreRegex.'.+\.php$/i', \RecursiveRegexIterator::GET_MATCH );