From 6562cc39aa7c9cf762660ff6bcfc55bdafeab672 Mon Sep 17 00:00:00 2001 From: Vincent Langlet Date: Sun, 6 Jul 2025 00:26:16 +0200 Subject: [PATCH 1/4] fix: require phpstan/phpdoc-parser --- src/Metadata/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Metadata/composer.json b/src/Metadata/composer.json index 59102a2947..eb06c2ea3a 100644 --- a/src/Metadata/composer.json +++ b/src/Metadata/composer.json @@ -29,6 +29,7 @@ "require": { "php": ">=8.2", "doctrine/inflector": "^2.0", + "phpstan/phpdoc-parser": "^1.29 || ^2.0", "psr/cache": "^1.0 || ^2.0 || ^3.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/property-info": "^6.4 || ^7.1", @@ -40,7 +41,6 @@ "api-platform/openapi": "^4.1.11", "api-platform/state": "^4.1.11", "phpspec/prophecy-phpunit": "^2.2", - "phpstan/phpdoc-parser": "^1.29 || ^2.0", "phpunit/phpunit": "11.5.x-dev", "symfony/config": "^6.4 || ^7.0", "symfony/routing": "^6.4 || ^7.0", From 7bf189fd64d6c8da2f4ecea5e6de81b03dae9436 Mon Sep 17 00:00:00 2001 From: Vincent Langlet Date: Sun, 6 Jul 2025 00:32:28 +0200 Subject: [PATCH 2/4] fix: avoid extra dependencies --- .../Factory/PhpDocResourceMetadataCollectionFactory.php | 4 ++++ src/Metadata/composer.json | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php b/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php index 47ba16855c..7305c23553 100644 --- a/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php +++ b/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php @@ -138,6 +138,10 @@ private function getDocBlock(string $class): ?PhpDocNode return null; } + if (!class_exists(TokenIterator::class)) { + return null; + } + $tokens = new TokenIterator($this->lexer->tokenize($rawDocNode)); $phpDocNode = $this->phpDocParser->parse($tokens); $tokens->consumeTokenType(Lexer::TOKEN_END); diff --git a/src/Metadata/composer.json b/src/Metadata/composer.json index eb06c2ea3a..078a2cdcb6 100644 --- a/src/Metadata/composer.json +++ b/src/Metadata/composer.json @@ -29,18 +29,18 @@ "require": { "php": ">=8.2", "doctrine/inflector": "^2.0", - "phpstan/phpdoc-parser": "^1.29 || ^2.0", "psr/cache": "^1.0 || ^2.0 || ^3.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/property-info": "^6.4 || ^7.1", "symfony/string": "^6.4 || ^7.0", - "symfony/type-info": "^7.2" + "symfony/type-info": "^7.3" }, "require-dev": { "api-platform/json-schema": "^4.1.11", "api-platform/openapi": "^4.1.11", "api-platform/state": "^4.1.11", "phpspec/prophecy-phpunit": "^2.2", + "phpstan/phpdoc-parser": "^1.29 || ^2.0", "phpunit/phpunit": "11.5.x-dev", "symfony/config": "^6.4 || ^7.0", "symfony/routing": "^6.4 || ^7.0", From c44438be1af503aabfae4d7af5c943b3f20f1777 Mon Sep 17 00:00:00 2001 From: Vincent Langlet Date: Sun, 6 Jul 2025 00:35:22 +0200 Subject: [PATCH 3/4] fix: check property --- .../Factory/PhpDocResourceMetadataCollectionFactory.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php b/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php index 7305c23553..dfd1b2078b 100644 --- a/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php +++ b/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php @@ -133,12 +133,11 @@ private function getDocBlock(string $class): ?PhpDocNode } $rawDocNode = $reflectionClass->getDocComment(); - if (!$rawDocNode) { return null; } - if (!class_exists(TokenIterator::class)) { + if (!$this->phpDocParser || !$this->lexer) { return null; } From 8e6f0bf1cc2f800b58dabcab440c5dfb55a99980 Mon Sep 17 00:00:00 2001 From: Vincent Langlet Date: Sun, 6 Jul 2025 09:55:26 +0200 Subject: [PATCH 4/4] fix: earlier return --- .../Factory/PhpDocResourceMetadataCollectionFactory.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php b/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php index dfd1b2078b..34c0434a43 100644 --- a/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php +++ b/src/Metadata/Resource/Factory/PhpDocResourceMetadataCollectionFactory.php @@ -126,6 +126,10 @@ private function getDocBlock(string $class): ?PhpDocNode return $this->docBlocks[$class]; } + if (!$this->phpDocParser || !$this->lexer) { + return null; + } + try { $reflectionClass = new \ReflectionClass($class); } catch (\ReflectionException) { @@ -137,10 +141,6 @@ private function getDocBlock(string $class): ?PhpDocNode return null; } - if (!$this->phpDocParser || !$this->lexer) { - return null; - } - $tokens = new TokenIterator($this->lexer->tokenize($rawDocNode)); $phpDocNode = $this->phpDocParser->parse($tokens); $tokens->consumeTokenType(Lexer::TOKEN_END);