Skip to content

Commit 52fc4de

Browse files
Merge branch '7.4' into 8.0
* 7.4: (21 commits) [SecurityBundle] Fix tests with Symfony 7.4 [DependencyInjection] Ensure deprecation detection does not trigger a PHP error [DependencyInjection][FrameworkBundle] fix BC break when dumping container for build/lint commands [Form] Clean up wrong method docblocks in data transformers Fix merge [DependencyInjection] Throw when using `$this` or its internal scope from PHP config files; use the `$loader` variable instead [HttpClient] Fix sharing CurlClientState between clones of CurlHttpClient instances [FrameworkBundle] Don't exclude classes with constraint/serialization attributes from being registered as services Revert "[HttpClient] Lazily initialize CurlClientState" [Yaml] Fix regression handling blank lines in unquoted scalars [Cache] Fix NullAdapter must set taggable [FrameworkBundle] Order alphabetically known tags of `UnusedTagsPass` allow the installation of MercureBundle 0.4 [Console] don't discard existing aliases when constructing Command Import all node definition classes to DefinitionConfigurator Fix the creation of a redis connection with only ext-relay [FrameworkBundle] Dump bundles config reference first [DependencyInjection] Don't add the .container.known_envs parameter when empty [DependencyInjection] Reset resolved state when setting a parameter [HttpKernel] Don't reset services between fragments redering when using in HttpCache ...
2 parents c136133 + c97d1f1 commit 52fc4de

File tree

4 files changed

+29
-29
lines changed

4 files changed

+29
-29
lines changed

Command/BuildDebugContainerTrait.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ protected function getContainerBuilder(KernelInterface $kernel): ContainerBuilde
6060
$dumpedContainer = unserialize(file_get_contents(substr_replace($file, '.ser', -4)));
6161
$container->setDefinitions($dumpedContainer->getDefinitions());
6262
$container->setAliases($dumpedContainer->getAliases());
63-
$container->__construct($dumpedContainer->getParameterBag());
63+
64+
$parameterBag = $container->getParameterBag();
65+
$parameterBag->clear();
66+
$parameterBag->add($dumpedContainer->getParameterBag()->all());
6467
}
6568

6669
return $this->container = $container;

DependencyInjection/Compiler/PhpConfigReferenceDumpPass.php

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -95,35 +95,28 @@ public function process(ContainerBuilder $container): void
9595
$appTypes = '';
9696

9797
$anyEnvExtensions = [];
98-
foreach ($container->getExtensions() as $alias => $extension) {
99-
if (!$configuration = $this->getConfiguration($extension, $container)) {
100-
continue;
101-
}
102-
103-
$anyEnvExtensions[$alias] = $extension;
104-
$type = $this->camelCase($alias).'Config';
105-
$appTypes .= \sprintf("\n * @psalm-type %s = %s", $type, ArrayShapeGenerator::generate($configuration->getConfigTreeBuilder()->buildTree()));
106-
}
98+
$registeredExtensions = $container->getExtensions();
10799
foreach ($this->bundlesDefinition as $bundle => $envs) {
108100
if (!is_subclass_of($bundle, BundleInterface::class)) {
109101
continue;
110102
}
111103
if (!$extension = (new $bundle())->getContainerExtension()) {
112104
continue;
113105
}
114-
if (!$configuration = $this->getConfiguration($extension, $container)) {
115-
continue;
116-
}
117106

118107
$extensionAlias = $extension->getAlias();
119-
if (isset($anyEnvExtensions[$extensionAlias])) {
120-
$extension = $anyEnvExtensions[$extensionAlias];
121-
} else {
122-
$anyEnvExtensions[$extensionAlias] = $extension;
123-
$type = $this->camelCase($extensionAlias).'Config';
124-
$appTypes .= \sprintf("\n * @psalm-type %s = %s", $type, ArrayShapeGenerator::generate($configuration->getConfigTreeBuilder()->buildTree()));
108+
if (isset($registeredExtensions[$extensionAlias])) {
109+
$extension = $registeredExtensions[$extensionAlias];
110+
unset($registeredExtensions[$extensionAlias]);
125111
}
126112

113+
if (!$configuration = $this->getConfiguration($extension, $container)) {
114+
continue;
115+
}
116+
$anyEnvExtensions[$extensionAlias] = $extension;
117+
$type = $this->camelCase($extensionAlias).'Config';
118+
$appTypes .= \sprintf("\n * @psalm-type %s = %s", $type, ArrayShapeGenerator::generate($configuration->getConfigTreeBuilder()->buildTree()));
119+
127120
foreach ($knownEnvs as $env) {
128121
if ($envs[$env] ?? $envs['all'] ?? false) {
129122
$extensionsPerEnv[$env][] = $extension;
@@ -132,6 +125,14 @@ public function process(ContainerBuilder $container): void
132125
}
133126
}
134127
}
128+
foreach ($registeredExtensions as $alias => $extension) {
129+
if (!$configuration = $this->getConfiguration($extension, $container)) {
130+
continue;
131+
}
132+
$anyEnvExtensions[$alias] = $extension;
133+
$type = $this->camelCase($alias).'Config';
134+
$appTypes .= \sprintf("\n * @psalm-type %s = %s", $type, ArrayShapeGenerator::generate($configuration->getConfigTreeBuilder()->buildTree()));
135+
}
135136
krsort($extensionsPerEnv);
136137

137138
$r = new \ReflectionClass(AppReference::class);

DependencyInjection/Compiler/UnusedTagsPass.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ class UnusedTagsPass implements CompilerPassInterface
7070
'mime.mime_type_guesser',
7171
'monolog.logger',
7272
'notifier.channel',
73+
'object_mapper.condition_callable',
74+
'object_mapper.transform_callable',
7375
'property_info.access_extractor',
7476
'property_info.constructor_extractor',
7577
'property_info.initializable_extractor',
@@ -108,8 +110,6 @@ class UnusedTagsPass implements CompilerPassInterface
108110
'validator.group_provider',
109111
'validator.initializer',
110112
'workflow',
111-
'object_mapper.transform_callable',
112-
'object_mapper.condition_callable',
113113
];
114114

115115
public function process(ContainerBuilder $container): void

DependencyInjection/FrameworkExtension.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1752,8 +1752,7 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
17521752
if (!($config['enable_attributes'] ?? false) || !$container->getParameter('kernel.debug')) {
17531753
// The $reflector argument hints at where the attribute could be used
17541754
$container->registerAttributeForAutoconfiguration(Constraint::class, static function (ChildDefinition $definition, Constraint $attribute, \ReflectionClass|\ReflectionMethod|\ReflectionProperty $reflector) {
1755-
$definition->addTag('validator.attribute_metadata')
1756-
->addTag('container.excluded', ['source' => 'because it\'s a validator constraint extension']);
1755+
$definition->addTag('validator.attribute_metadata');
17571756
});
17581757
}
17591758

@@ -2005,24 +2004,21 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
20052004
if (!($config['enable_attributes'] ?? false) || !$container->getParameter('kernel.debug')) {
20062005
// The $reflector argument hints at where the attribute could be used
20072006
$configurator = static function (ChildDefinition $definition, object $attribute, \ReflectionClass|\ReflectionMethod|\ReflectionProperty $reflector) {
2008-
$definition->addTag('serializer.attribute_metadata')
2009-
->addTag('container.excluded', ['source' => 'because it\'s a serializer metadata extension']);
2007+
$definition->addTag('serializer.attribute_metadata');
20102008
};
20112009
$container->registerAttributeForAutoconfiguration(SerializerMapping\Context::class, $configurator);
20122010
$container->registerAttributeForAutoconfiguration(SerializerMapping\Groups::class, $configurator);
20132011

20142012
$configurator = static function (ChildDefinition $definition, object $attribute, \ReflectionMethod|\ReflectionProperty $reflector) {
2015-
$definition->addTag('serializer.attribute_metadata')
2016-
->addTag('container.excluded', ['source' => 'because it\'s a serializer metadata extension']);
2013+
$definition->addTag('serializer.attribute_metadata');
20172014
};
20182015
$container->registerAttributeForAutoconfiguration(SerializerMapping\Ignore::class, $configurator);
20192016
$container->registerAttributeForAutoconfiguration(SerializerMapping\MaxDepth::class, $configurator);
20202017
$container->registerAttributeForAutoconfiguration(SerializerMapping\SerializedName::class, $configurator);
20212018
$container->registerAttributeForAutoconfiguration(SerializerMapping\SerializedPath::class, $configurator);
20222019

20232020
$container->registerAttributeForAutoconfiguration(SerializerMapping\DiscriminatorMap::class, static function (ChildDefinition $definition) {
2024-
$definition->addTag('serializer.attribute_metadata')
2025-
->addTag('container.excluded', ['source' => 'because it\'s a serializer metadata extension']);
2021+
$definition->addTag('serializer.attribute_metadata');
20262022
});
20272023
}
20282024

0 commit comments

Comments
 (0)