|
33 | 33 | use InvalidArgumentException;
|
34 | 34 | use LogicException;
|
35 | 35 | use Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolver;
|
36 |
| -use Symfony\Bridge\Doctrine\ArgumentResolver\UserInjector; |
| 36 | +use Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolverExpressionModifiersInjectorInterface; |
37 | 37 | use Symfony\Bridge\Doctrine\Attribute\MapEntity;
|
38 | 38 | use Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension;
|
39 | 39 | use Symfony\Bridge\Doctrine\IdGenerator\UlidGenerator;
|
|
51 | 51 | use Symfony\Component\Config\Definition\ConfigurationInterface;
|
52 | 52 | use Symfony\Component\Config\FileLocator;
|
53 | 53 | use Symfony\Component\DependencyInjection\Alias;
|
| 54 | +use Symfony\Component\DependencyInjection\Attribute\AutowireLocator; |
54 | 55 | use Symfony\Component\DependencyInjection\ChildDefinition;
|
55 | 56 | use Symfony\Component\DependencyInjection\ContainerBuilder;
|
56 | 57 | use Symfony\Component\DependencyInjection\Definition;
|
@@ -182,6 +183,7 @@ protected function dbalLoad(array $config, ContainerBuilder $container)
|
182 | 183 | $container->setAlias('doctrine.dbal.event_manager', new Alias(sprintf('doctrine.dbal.%s_connection.event_manager', $this->defaultConnection), false));
|
183 | 184 |
|
184 | 185 | $container->setParameter('doctrine.dbal.connection_factory.types', $config['types']);
|
| 186 | + $container->setParameter('doctrine.dbal.default_expression_modifier_injector', $config['default_expression_modifier_injector']); |
185 | 187 |
|
186 | 188 | $container->getDefinition('doctrine.dbal.connection_factory.dsn_parser')->setArgument(0, array_merge(ConnectionFactory::DEFAULT_SCHEME_MAP, $config['driver_schemes']));
|
187 | 189 |
|
@@ -497,7 +499,6 @@ protected function ormLoad(array $config, ContainerBuilder $container)
|
497 | 499 | // available in Symfony 6.2 and higher
|
498 | 500 | if (! class_exists(EntityValueResolver::class)) {
|
499 | 501 | $container->removeDefinition('doctrine.orm.entity_value_resolver');
|
500 |
| - $container->removeDefinition('doctrine.orm.entity_value_resolver.expression_language'); |
501 | 502 | } else {
|
502 | 503 | if (! class_exists(ExpressionLanguage::class)) {
|
503 | 504 | $container->removeDefinition('doctrine.orm.entity_value_resolver.expression_language');
|
@@ -538,8 +539,10 @@ protected function ormLoad(array $config, ContainerBuilder $container)
|
538 | 539 | $container->getDefinition('doctrine.orm.entity_value_resolver')->setArgument(2, (new Definition(MapEntity::class)));
|
539 | 540 | }
|
540 | 541 |
|
541 |
| - if (class_exists(ExpressionLanguage::class) && class_exists(UserInjector::class)) { |
542 |
| - $container->getDefinition('doctrine.orm.entity_value_resolver')->setArgument(3, new Reference('doctrine.orm.entity_value_resolver_variable_injector')); |
| 542 | + if (class_exists(ExpressionLanguage::class) && interface_exists(EntityValueResolverExpressionModifiersInjectorInterface::class)) { |
| 543 | + $container->registerForAutoconfiguration(EntityValueResolverExpressionModifiersInjectorInterface::class)->addTag('doctrine.orm.entity_value_resolver_expression_modifier_injector'); |
| 544 | + $container->getDefinition('doctrine.orm.entity_value_resolver')->setArgument(3, new AutowireLocator('doctrine.orm.entity_value_resolver_expression_modifier_injector', 'key')); |
| 545 | + $container->getDefinition('doctrine.orm.entity_value_resolver')->setArgument(4, $container->getParameter('doctrine.dbal.default_expression_modifier_injector')); |
543 | 546 | }
|
544 | 547 | }
|
545 | 548 |
|
|
0 commit comments