From 6439e7f52c3b1af6284771c66bfaa4896839f04e Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 16 Nov 2024 00:20:50 +0900 Subject: [PATCH] Add PHP version check for attributes handling Ensure compatibility with PHP versions below 8 by adding conditional checks before processing attributes. This prevents runtime errors in environments using earlier PHP versions. --- src/MethodSignatureString.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/MethodSignatureString.php b/src/MethodSignatureString.php index 2fb07447..682773cb 100644 --- a/src/MethodSignatureString.php +++ b/src/MethodSignatureString.php @@ -20,6 +20,7 @@ use function var_export; use const PHP_EOL; +use const PHP_MAJOR_VERSION; final class MethodSignatureString { @@ -27,7 +28,8 @@ final class MethodSignatureString private const NULLABLE_PHP7 = '?'; private const INDENT = ' '; - private TypeString $typeString; + /** @var TypeString */ + private $typeString; public function __construct(int $phpVersion) { @@ -61,6 +63,10 @@ private function getDocComment(ReflectionMethod $method): array /** @param array $signatureParts */ private function addAttributes(ReflectionMethod $method, array &$signatureParts): void { + if (PHP_MAJOR_VERSION < 8) { + return; + } + $attributes = $method->getAttributes(); foreach ($attributes as $attribute) { $signatureParts[] = sprintf(' #[%s]', $this->formatAttributeStr($attribute)) . PHP_EOL; @@ -155,6 +161,10 @@ private function generateParameterCode(ReflectionParameter $param): string public function getAttributeStr(ReflectionParameter $param): string { + if (PHP_MAJOR_VERSION < 8) { + return ''; + } + $attributesStr = ''; $attributes = $param->getAttributes(); if (! empty($attributes)) {