Skip to content

Commit

Permalink
Feature detection
Browse files Browse the repository at this point in the history
  • Loading branch information
dunglas committed Nov 15, 2018
1 parent 342f23a commit 0ce1246
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions DependencyInjection/DoctrineExtension.php
Expand Up @@ -797,17 +797,22 @@ protected function loadOrmCacheDrivers(array $entityManager, ContainerBuilder $c
*/
private function loadPropertyInfoExtractor($entityManagerName, ContainerBuilder $container)
{
$metadataFactoryService = sprintf('doctrine.orm.%s_entity_manager.metadata_factory', $entityManagerName);
$propertyExtractorDefinition = $container->register(sprintf('doctrine.orm.%s_entity_manager.property_info_extractor', $entityManagerName), 'Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor');
if (class_exists('Symfony\Component\PropertyInfo\PropertyInitializableExtractorInterface')) {
$propertyExtractorDefinition->addArgument(new Reference(sprintf('doctrine.orm.%s_entity_manager', $entityManagerName)));
} else {
$metadataFactoryService = sprintf('doctrine.orm.%s_entity_manager.metadata_factory', $entityManagerName);

$metadataFactoryDefinition = $container->register($metadataFactoryService, 'Doctrine\Common\Persistence\Mapping\ClassMetadataFactory');
$metadataFactoryDefinition->setFactory([
new Reference(sprintf('doctrine.orm.%s_entity_manager', $entityManagerName)),
'getMetadataFactory',
]);
$metadataFactoryDefinition->setPublic(false);

$metadataFactoryDefinition = $container->register($metadataFactoryService, 'Doctrine\Common\Persistence\Mapping\ClassMetadataFactory');
$metadataFactoryDefinition->setFactory([
new Reference(sprintf('doctrine.orm.%s_entity_manager', $entityManagerName)),
'getMetadataFactory',
]);
$metadataFactoryDefinition->setPublic(false);
$propertyExtractorDefinition->addArgument(new Reference($metadataFactoryService));
}

$propertyExtractorDefinition = $container->register(sprintf('doctrine.orm.%s_entity_manager.property_info_extractor', $entityManagerName), 'Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor');
$propertyExtractorDefinition->addArgument(new Reference($metadataFactoryService));
$propertyExtractorDefinition->addTag('property_info.list_extractor', ['priority' => -1001]);
$propertyExtractorDefinition->addTag('property_info.type_extractor', ['priority' => -999]);
}
Expand Down

0 comments on commit 0ce1246

Please sign in to comment.