From 88cd1b5cf0c7c922631d48d4982fd6b08fb12be6 Mon Sep 17 00:00:00 2001 From: Yoanm Date: Sat, 20 Apr 2019 21:25:40 +0200 Subject: [PATCH 1/2] Polish --- src/App/Helper/TypeGuesser.php | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/App/Helper/TypeGuesser.php b/src/App/Helper/TypeGuesser.php index 121177a..95e4aeb 100644 --- a/src/App/Helper/TypeGuesser.php +++ b/src/App/Helper/TypeGuesser.php @@ -116,18 +116,12 @@ private function isAbstractType(TypeDoc $doc) : bool private function guessPrimaryTypeFromConstraint(Constraint $constraint) : ?TypeDoc { // Try to guess primary types - if (null !== $this->getMatchingClassNameIn($constraint, self::STRING_CONSTRAINT_CLASS_LIST)) { - return new StringDoc(); - } elseif (null !== $this->getMatchingClassNameIn($constraint, self::BOOLEAN_CONSTRAINT_CLASS_LIST)) { - return new BooleanDoc(); + if (null !== ($type = $this->guessSimplePrimaryTypeFromConstraint($constraint))) { + return $type; } elseif ($constraint instanceof Assert\DateTime) { return $this->guessDateTimeType($constraint); } elseif ($constraint instanceof Assert\Collection) { return $this->guestCollectionType($constraint); - } elseif ($constraint instanceof Assert\Regex) { - return new ScalarDoc(); - } elseif ($this->isArrayConstraint($constraint)) { - return new ArrayDoc(); } return null; @@ -175,4 +169,19 @@ private function isArrayConstraint(Constraint $constraint): bool && true === $constraint->multiple // << expect an array multiple choices ); } + + private function guessSimplePrimaryTypeFromConstraint(Constraint $constraint) : ?TypeDoc + { + if (null !== $this->getMatchingClassNameIn($constraint, self::STRING_CONSTRAINT_CLASS_LIST)) { + return new StringDoc(); + } elseif (null !== $this->getMatchingClassNameIn($constraint, self::BOOLEAN_CONSTRAINT_CLASS_LIST)) { + return new BooleanDoc(); + } elseif ($constraint instanceof Assert\Regex) { + return new ScalarDoc(); + } elseif ($this->isArrayConstraint($constraint)) { + return new ArrayDoc(); + } + + return null; + } } From 4cde4ee85cc96d1111b92373fab2fb87c3f4b933 Mon Sep 17 00:00:00 2001 From: Yoanm Date: Sat, 20 Apr 2019 21:28:21 +0200 Subject: [PATCH 2/2] Fix scrutinizer issue --- src/App/Helper/TypeGuesser.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/App/Helper/TypeGuesser.php b/src/App/Helper/TypeGuesser.php index 95e4aeb..8a37d83 100644 --- a/src/App/Helper/TypeGuesser.php +++ b/src/App/Helper/TypeGuesser.php @@ -170,6 +170,11 @@ private function isArrayConstraint(Constraint $constraint): bool ); } + /** + * @param Constraint $constraint + * + * @return TypeDoc|null + */ private function guessSimplePrimaryTypeFromConstraint(Constraint $constraint) : ?TypeDoc { if (null !== $this->getMatchingClassNameIn($constraint, self::STRING_CONSTRAINT_CLASS_LIST)) {