From 1de49298737fa6df56daf948982f56b9b2dac07e Mon Sep 17 00:00:00 2001 From: Damien Harper Date: Thu, 15 Dec 2022 23:14:36 +0100 Subject: [PATCH] Fixed invokable storage mapper (see #146) (#148) --- src/Provider/Doctrine/Auditing/Transaction/AuditTrait.php | 3 ++- src/Provider/Doctrine/DoctrineProvider.php | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Provider/Doctrine/Auditing/Transaction/AuditTrait.php b/src/Provider/Doctrine/Auditing/Transaction/AuditTrait.php index 1d3dfb55..8864134a 100644 --- a/src/Provider/Doctrine/Auditing/Transaction/AuditTrait.php +++ b/src/Provider/Doctrine/Auditing/Transaction/AuditTrait.php @@ -75,7 +75,8 @@ private function value(EntityManagerInterface $entityManager, Type $type, $value if (null === $value) { return null; } - if (interface_exists(UnitEnum::class) && $value instanceof UnitEnum && property_exists($value, 'value')) { + + if (interface_exists(UnitEnum::class) && $value instanceof UnitEnum && property_exists($value, 'value')) { /** @phpstan-ignore-line */ $value = $value->value; } diff --git a/src/Provider/Doctrine/DoctrineProvider.php b/src/Provider/Doctrine/DoctrineProvider.php index 30514a88..ae127ad9 100644 --- a/src/Provider/Doctrine/DoctrineProvider.php +++ b/src/Provider/Doctrine/DoctrineProvider.php @@ -89,6 +89,10 @@ public function getStorageServiceForEntity(string $entity): StorageServiceInterf return array_values($this->getStorageServices())[0]; } + if (\is_string($storageMapper) && class_exists($storageMapper)) { + $storageMapper = new $storageMapper(); + } + \assert(\is_callable($storageMapper)); // helps PHPStan return $storageMapper($entity, $this->getStorageServices());