From 5aeb338addd145cc0fdf1c6a157e5bb70c3a31ed Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 31 Dec 2025 13:19:20 +0100 Subject: [PATCH 1/2] Prevent unnecessary base64_decode() --- .../BetterReflection/BetterReflectionProvider.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Reflection/BetterReflection/BetterReflectionProvider.php b/src/Reflection/BetterReflection/BetterReflectionProvider.php index 6236191b63..47f7606c24 100644 --- a/src/Reflection/BetterReflection/BetterReflectionProvider.php +++ b/src/Reflection/BetterReflection/BetterReflectionProvider.php @@ -142,11 +142,16 @@ public function getClass(string $className): ClassReflection return $this->classReflections[$reflectionClassName]; } - $enumAdapter = base64_decode('UEhQU3RhblxCZXR0ZXJSZWZsZWN0aW9uXFJlZmxlY3Rpb25cQWRhcHRlclxSZWZsZWN0aW9uRW51bQ==', true); + if ($reflectionClass instanceof ReflectionEnum && PHP_VERSION_ID >= 80000) { + $enumAdapter = base64_decode('UEhQU3RhblxCZXR0ZXJSZWZsZWN0aW9uXFJlZmxlY3Rpb25cQWRhcHRlclxSZWZsZWN0aW9uRW51bQ==', true); + $adaptedClass = new $enumAdapter($reflectionClass); + } else { + $adaptedClass = new ReflectionClass($reflectionClass); + } return $this->classReflections[$reflectionClassName] = $this->classReflectionFactory->create( $reflectionClass->getName(), - $reflectionClass instanceof ReflectionEnum && PHP_VERSION_ID >= 80000 ? new $enumAdapter($reflectionClass) : new ReflectionClass($reflectionClass), + $adaptedClass, null, null, $this->stubPhpDocProvider->findClassPhpDoc($reflectionClass->getName()), From 34086ea9509d4467c336fe6c9265fcf91b552570 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 31 Dec 2025 13:20:50 +0100 Subject: [PATCH 2/2] Prevent path-normalization for anonymouses classes --- src/Reflection/BetterReflection/BetterReflectionProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Reflection/BetterReflection/BetterReflectionProvider.php b/src/Reflection/BetterReflection/BetterReflectionProvider.php index 47f7606c24..38f04dab89 100644 --- a/src/Reflection/BetterReflection/BetterReflectionProvider.php +++ b/src/Reflection/BetterReflection/BetterReflectionProvider.php @@ -188,7 +188,6 @@ public function getAnonymousClassReflection(Node\Stmt\Class_ $classNode, Scope $ } } - $filename = $this->fileHelper->normalizePath($this->relativePathHelper->getRelativePath($scopeFile), '/'); $className = $this->anonymousClassNameHelper->getAnonymousClassName( $classNode, $scopeFile, @@ -220,6 +219,7 @@ public function getAnonymousClassReflection(Node\Stmt\Class_ $classNode, Scope $ /** @var int|null $classLineIndex */ $classLineIndex = $classNode->getAttribute(AnonymousClassVisitor::ATTRIBUTE_LINE_INDEX); + $filename = $this->fileHelper->normalizePath($this->relativePathHelper->getRelativePath($scopeFile), '/'); if ($classLineIndex === null) { $displayName = sprintf('%s@anonymous/%s:%s', $displayParentName, $filename, $classNode->getStartLine()); } else {