From 190ad4332e0fe889598f61bc45b15809a91b34b8 Mon Sep 17 00:00:00 2001 From: Yurii Kuvshynov <141632421+fogrye@users.noreply.github.com> Date: Sun, 7 Apr 2024 18:03:14 +0200 Subject: [PATCH] fix: drop parameters check Currently, each parameter attribute is assigned to method's parameter instead of method, makes this check useless --- src/AnnotationReader.php | 21 ------------------- .../Exceptions/InvalidParameterException.php | 5 ----- 2 files changed, 26 deletions(-) diff --git a/src/AnnotationReader.php b/src/AnnotationReader.php index c94f928cd..d7733701d 100644 --- a/src/AnnotationReader.php +++ b/src/AnnotationReader.php @@ -257,27 +257,6 @@ public function getParameterAnnotationsPerParameter(array $refParameters): array $method = $firstParam->getDeclaringFunction(); assert($method instanceof ReflectionMethod); - /** @var ParameterAnnotationInterface[] $parameterAnnotations */ - $parameterAnnotations = $this->getMethodAnnotations($method, ParameterAnnotationInterface::class); - - /** @var array> $parameterAnnotationsPerParameter */ - $parameterAnnotationsPerParameter = []; - foreach ($parameterAnnotations as $parameterAnnotation) { - $parameterAnnotationsPerParameter[$parameterAnnotation->getTarget()][] = $parameterAnnotation; - } - - // Let's check that the referenced parameters actually do exist: - $parametersByKey = []; - foreach ($refParameters as $refParameter) { - $parametersByKey[$refParameter->getName()] = true; - } - $diff = array_diff_key($parameterAnnotationsPerParameter, $parametersByKey); - if (count($diff) > 0) { - foreach ($diff as $parameterName => $parameterAnnotations) { - throw InvalidParameterException::parameterNotFound($parameterName, get_class($parameterAnnotations[0]), $method); - } - } - foreach ($refParameters as $refParameter) { $attributes = $refParameter->getAttributes(); $parameterAnnotationsPerParameter[$refParameter->getName()] = [...$parameterAnnotationsPerParameter[$refParameter->getName()] ?? diff --git a/src/Annotations/Exceptions/InvalidParameterException.php b/src/Annotations/Exceptions/InvalidParameterException.php index 707023293..86738a7ec 100644 --- a/src/Annotations/Exceptions/InvalidParameterException.php +++ b/src/Annotations/Exceptions/InvalidParameterException.php @@ -11,11 +11,6 @@ class InvalidParameterException extends BadMethodCallException { - public static function parameterNotFound(string $parameter, string $annotationClass, ReflectionMethod $reflectionMethod): self - { - return new self(sprintf('Parameter "%s" declared in attribute "%s" of method "%s::%s()" does not exist.', $parameter, $annotationClass, $reflectionMethod->getDeclaringClass()->getName(), $reflectionMethod->getName())); - } - public static function parameterNotFoundFromSourceField(string $parameter, string $annotationClass, ReflectionMethod $reflectionMethod): self { return new self(sprintf('Could not find parameter "%s" declared in annotation "%s". This annotation is itself declared in a SourceField attribute targeting resolver "%s::%s()".', $parameter, $annotationClass, $reflectionMethod->getDeclaringClass()->getName(), $reflectionMethod->getName()));