From e33cea55b35b880d800ba24af3b88e4266ed897a Mon Sep 17 00:00:00 2001 From: Yoanm Date: Sat, 20 Apr 2019 17:40:34 +0200 Subject: [PATCH 1/3] Reduce complexity --- .../Component/SchemaTypeNormalizer.php | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/src/App/Normalizer/Component/SchemaTypeNormalizer.php b/src/App/Normalizer/Component/SchemaTypeNormalizer.php index a60f32c..29eed81 100644 --- a/src/App/Normalizer/Component/SchemaTypeNormalizer.php +++ b/src/App/Normalizer/Component/SchemaTypeNormalizer.php @@ -8,32 +8,42 @@ */ class SchemaTypeNormalizer { + /** + * @private + * @type array + */ + const MANAGED_TYPE_LIST = [ + 'array', + 'number', + 'object', + 'string', + 'integer', + 'boolean', + 'null', + ]; + /** + * @private + * @type array + */ + const RENAMED_TYPE_LIST = [ + 'float' => 'number', + 'collection' => 'array', + ]; /** * @param TypeDoc $doc * - * @return mixed|string + * @return string * * @throws \ReflectionException */ public function normalize(TypeDoc $doc) : string { $type = str_replace('Doc', '', lcfirst((new \ReflectionClass($doc))->getShortName())); - // translate type - switch ($type) { - case 'array': - case 'number': - case 'object': - case 'string': - case 'integer': - case 'boolean': - case 'null': - return $type; - case 'float': - return 'number'; - case 'collection': - return 'array'; - default: - return 'string'; + if (in_array($type, self::MANAGED_TYPE_LIST)) { + return $type; + } elseif (in_array($type, array_keys(self::RENAMED_TYPE_LIST))) { + return self::RENAMED_TYPE_LIST[$type]; } + return 'string'; } } From 41b40d1efafe12838b420af13c682c3e7965404f Mon Sep 17 00:00:00 2001 From: Yoanm Date: Sat, 20 Apr 2019 18:26:19 +0200 Subject: [PATCH 2/3] Improve --- .../Component/SchemaTypeNormalizer.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/App/Normalizer/Component/SchemaTypeNormalizer.php b/src/App/Normalizer/Component/SchemaTypeNormalizer.php index 29eed81..e704001 100644 --- a/src/App/Normalizer/Component/SchemaTypeNormalizer.php +++ b/src/App/Normalizer/Component/SchemaTypeNormalizer.php @@ -13,13 +13,13 @@ class SchemaTypeNormalizer * @type array */ const MANAGED_TYPE_LIST = [ - 'array', - 'number', - 'object', - 'string', - 'integer', - 'boolean', - 'null', + 'array' => true, + 'number' => true, + 'object' => true, + 'string' => true, + 'integer' => true, + 'boolean' => true, + 'null' => true, ]; /** * @private @@ -39,9 +39,9 @@ class SchemaTypeNormalizer public function normalize(TypeDoc $doc) : string { $type = str_replace('Doc', '', lcfirst((new \ReflectionClass($doc))->getShortName())); - if (in_array($type, self::MANAGED_TYPE_LIST)) { + if (array_key_exists($type, self::MANAGED_TYPE_LIST)) { return $type; - } elseif (in_array($type, array_keys(self::RENAMED_TYPE_LIST))) { + } elseif (array_key_exists($type,self::RENAMED_TYPE_LIST)) { return self::RENAMED_TYPE_LIST[$type]; } return 'string'; From 224e0ab6b8cf2decb6f17a685ad14c2d159c65fb Mon Sep 17 00:00:00 2001 From: Yoanm Date: Sat, 20 Apr 2019 19:46:46 +0200 Subject: [PATCH 3/3] Fix --- src/App/Normalizer/Component/SchemaTypeNormalizer.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/App/Normalizer/Component/SchemaTypeNormalizer.php b/src/App/Normalizer/Component/SchemaTypeNormalizer.php index e704001..ce90ada 100644 --- a/src/App/Normalizer/Component/SchemaTypeNormalizer.php +++ b/src/App/Normalizer/Component/SchemaTypeNormalizer.php @@ -41,9 +41,10 @@ public function normalize(TypeDoc $doc) : string $type = str_replace('Doc', '', lcfirst((new \ReflectionClass($doc))->getShortName())); if (array_key_exists($type, self::MANAGED_TYPE_LIST)) { return $type; - } elseif (array_key_exists($type,self::RENAMED_TYPE_LIST)) { + } elseif (array_key_exists($type, self::RENAMED_TYPE_LIST)) { return self::RENAMED_TYPE_LIST[$type]; } + return 'string'; } }