From 67d1b71e354ba5aed002082306a44d83f4b8c850 Mon Sep 17 00:00:00 2001 From: liquetsoft Date: Tue, 24 Sep 2024 19:14:26 +0200 Subject: [PATCH] Fix FiasSerializer --- .../CompiledEntitesDenormalizer.php | 82 +++++++------------ 1 file changed, 28 insertions(+), 54 deletions(-) diff --git a/src/Serializer/CompiledEntitesDenormalizer.php b/src/Serializer/CompiledEntitesDenormalizer.php index 6d784f2..355d0d6 100644 --- a/src/Serializer/CompiledEntitesDenormalizer.php +++ b/src/Serializer/CompiledEntitesDenormalizer.php @@ -35,32 +35,32 @@ /** * Скомпилированный класс для денормализации сущностей ФИАС в модели eloquent. */ -class CompiledEntitesDenormalizer implements DenormalizerInterface +final class CompiledEntitesDenormalizer implements DenormalizerInterface { private const ALLOWED_ENTITIES = [ - Apartments::class, - AddrObjDivision::class, - NormativeDocsTypes::class, - RoomTypes::class, - ObjectLevels::class, - NormativeDocsKinds::class, - Rooms::class, - ApartmentTypes::class, - AddrObjTypes::class, - Steads::class, - NormativeDocs::class, - OperationTypes::class, - Houses::class, - AdmHierarchy::class, - Carplaces::class, - ChangeHistory::class, - AddrObj::class, - ParamTypes::class, - Param::class, - ReestrObjects::class, - HouseTypes::class, - MunHierarchy::class, - FiasVersion::class, + Apartments::class => true, + AddrObjDivision::class => true, + NormativeDocsTypes::class => true, + RoomTypes::class => true, + ObjectLevels::class => true, + NormativeDocsKinds::class => true, + Rooms::class => true, + ApartmentTypes::class => true, + AddrObjTypes::class => true, + Steads::class => true, + NormativeDocs::class => true, + OperationTypes::class => true, + Houses::class => true, + AdmHierarchy::class => true, + Carplaces::class => true, + ChangeHistory::class => true, + AddrObj::class => true, + ParamTypes::class => true, + Param::class => true, + ReestrObjects::class => true, + HouseTypes::class => true, + MunHierarchy::class => true, + FiasVersion::class => true, ]; /** @@ -68,7 +68,7 @@ class CompiledEntitesDenormalizer implements DenormalizerInterface */ public function supportsDenormalization($data, string $type, ?string $format = null) { - return \in_array(trim($type, " \t\n\r\0\x0B\\/"), self::ALLOWED_ENTITIES); + return \array_key_exists(trim($type, " \t\n\r\0\x0B\\/"), self::ALLOWED_ENTITIES); } /** @@ -84,8 +84,7 @@ public function denormalize($data, string $type, ?string $format = null, array $ $entity = $context[AbstractNormalizer::OBJECT_TO_POPULATE] ?? new $type(); if (!($entity instanceof Model)) { - $message = \sprintf("Bad class for populating entity, need '%s' instance.", Model::class); - throw new InvalidArgumentException($message); + throw new InvalidArgumentException("Bad class for populating entity, '" . Model::class . "' is required"); } switch ($type) { @@ -159,8 +158,7 @@ public function denormalize($data, string $type, ?string $format = null, array $ $extractedData = $this->modelFiasVersionDataExtractor($data); break; default: - $message = \sprintf("Can't find data extractor for '%s' type.", $type); - throw new InvalidArgumentException($message); + throw new InvalidArgumentException("Can't find data extractor for '{$type}' type"); break; } @@ -174,31 +172,7 @@ public function denormalize($data, string $type, ?string $format = null, array $ */ public function getSupportedTypes(?string $format): array { - return [ - Apartments::class => true, - AddrObjDivision::class => true, - NormativeDocsTypes::class => true, - RoomTypes::class => true, - ObjectLevels::class => true, - NormativeDocsKinds::class => true, - Rooms::class => true, - ApartmentTypes::class => true, - AddrObjTypes::class => true, - Steads::class => true, - NormativeDocs::class => true, - OperationTypes::class => true, - Houses::class => true, - AdmHierarchy::class => true, - Carplaces::class => true, - ChangeHistory::class => true, - AddrObj::class => true, - ParamTypes::class => true, - Param::class => true, - ReestrObjects::class => true, - HouseTypes::class => true, - MunHierarchy::class => true, - FiasVersion::class => true, - ]; + return self::ALLOWED_ENTITIES; } /**