From 7b3c6c57b182268bcd2dd7b7aa350efe85847fd7 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo <1102197+priyadi@users.noreply.github.com> Date: Thu, 30 May 2024 18:35:18 +0700 Subject: [PATCH] fix: uuid packages are now not required --- CHANGELOG.md | 1 + config/services.php | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70b69e3..2524d4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * feat: utilize `InheritanceMap` on the source side to determine the target class +* fix: uuid packages are now not required ## 1.4.0 diff --git a/config/services.php b/config/services.php index d5c3831..a9473ef 100644 --- a/config/services.php +++ b/config/services.php @@ -11,6 +11,7 @@ * that was distributed with this source code. */ +use Ramsey\Uuid\UuidInterface; use Rekalogika\Mapper\Command\MappingCommand; use Rekalogika\Mapper\Command\TryCommand; use Rekalogika\Mapper\Command\TryPropertyCommand; @@ -69,6 +70,7 @@ use Symfony\Component\PropertyInfo\PropertyInfoExtractor; use Symfony\Component\PropertyInfo\PropertyReadInfoExtractorInterface; use Symfony\Component\PropertyInfo\PropertyWriteInfoExtractorInterface; +use Symfony\Component\Uid\Factory\UuidFactory; use function Symfony\Component\DependencyInjection\Loader\Configurator\param; use function Symfony\Component\DependencyInjection\Loader\Configurator\service; @@ -127,13 +129,17 @@ ->set(StringToBackedEnumTransformer::class) ->tag('rekalogika.mapper.transformer', ['priority' => -500]); - $services - ->set(SymfonyUidTransformer::class) - ->tag('rekalogika.mapper.transformer', ['priority' => -550]); - - $services - ->set(RamseyUuidTransformer::class) - ->tag('rekalogika.mapper.transformer', ['priority' => -550]); + if (class_exists(UuidFactory::class)) { + $services + ->set(SymfonyUidTransformer::class) + ->tag('rekalogika.mapper.transformer', ['priority' => -550]); + } + + if (interface_exists(UuidInterface::class)) { + $services + ->set(RamseyUuidTransformer::class) + ->tag('rekalogika.mapper.transformer', ['priority' => -550]); + } $services ->set(ObjectToStringTransformer::class)