From 1e129ad2ffda8709bf02b4ee0ab74485cc3c0903 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Mon, 20 Mar 2017 20:10:31 +0200 Subject: [PATCH] Add ability to define a hydrator class. --- DependencyInjection/Configuration.php | 2 ++ DependencyInjection/YadmExtension.php | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 0677299..888f9e1 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -1,6 +1,7 @@ scalarNode('collection')->isRequired()->cannotBeEmpty()->end() ->scalarNode('database')->isRequired()->cannotBeEmpty()->end() ->scalarNode('hydrator')->defaultValue(false)->end() + ->scalarNode('hydrator_class')->defaultValue(Hydrator::class)->cannotBeEmpty()->end() ->booleanNode('pessimistic_lock')->defaultFalse()->end() ->scalarNode('repository')->end() ->end() diff --git a/DependencyInjection/YadmExtension.php b/DependencyInjection/YadmExtension.php index 9558cda..4496384 100644 --- a/DependencyInjection/YadmExtension.php +++ b/DependencyInjection/YadmExtension.php @@ -38,9 +38,13 @@ public function load(array $configs, ContainerBuilder $container) if (false == $hydratorId = $modelConfig['hydrator']) { $hydratorId = sprintf('yadm.%s.hydrator', $name); - $container->register($hydratorId, Hydrator::class)->addArgument($modelConfig['class']); + $hydratorClass = $modelConfig['hydrator_class']; + + $container->register($hydratorId, $hydratorClass)->addArgument($modelConfig['class']); } + + $container->register(sprintf('yadm.%s.storage', $name), Storage::class) ->addArgument(new Reference(sprintf('yadm.%s.collection', $name))) ->addArgument(new Reference($hydratorId))