diff --git a/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php b/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php index 00652bb71612..34aba14e9f6e 100644 --- a/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php +++ b/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php @@ -11,6 +11,7 @@ namespace Symfony\Bridge\Doctrine\DependencyInjection; +use Symfony\Component\Config\Resource\GlobResource; use Symfony\Component\DependencyInjection\Alias; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -88,6 +89,25 @@ protected function loadMappingInformation(array $objectManager, ContainerBuilder if (!$mappingConfig) { continue; } + } elseif (!$mappingConfig['type'] && \PHP_VERSION_ID < 80000) { + $mappingConfig['type'] = 'annotation'; + } elseif (!$mappingConfig['type']) { + $mappingConfig['type'] = 'attribute'; + + $glob = new GlobResource($mappingConfig['dir'], '*', true); + $container->addResource($glob); + + foreach ($glob as $file) { + $content = file_get_contents($file); + + if (preg_match('/^#\[.*Entity\b/m', $content)) { + break; + } + if (preg_match('/^ \* @.*Entity\b/m', $content)) { + $mappingConfig['type'] = 'annotation'; + break; + } + } } $this->assertValidMappingConfiguration($mappingConfig, $objectManager['name']); diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig index b279477265bf..343c8e17455c 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig @@ -125,7 +125,7 @@ {% if app is defined and app.request is defined %}{%- set input_lang = app.request.locale -%}{%- endif -%} {%- set attr = {lang: input_lang} | merge(attr) -%} {{- block('form_widget_simple') -}} - {%- set label_attr = label_attr|merge({ class: (label_attr.class|default('') ~ ' custom-file-label')|trim }) -%} + {%- set label_attr = label_attr|merge({ class: (label_attr.class|default('') ~ ' custom-file-label')|trim })|filter((value, key) => key != 'id') -%}