Skip to content

Commit 54243ab

Browse files
committed
Merge branch '2.8' into 3.3
* 2.8: [HttpFoundation] Use the correct syntax for session gc based on Pdo driver Removed assertDateTimeEquals() methods. Revert "bug #24987 [Console] Fix global console flag when used in chain (Simperfit)" Revert "bug #25487 [Console] Fix a bug when passing a letter that could be an alias (Simperfit)" Disable CSP header on exception pages only in debug Fixed submitting disabled buttons Fixed Button::setParent() when already submitted Improve assertions Improve assertions SCA: get rid of repetitive calls allow null values for root nodes in YAML configs [VarDumper] Fix docblock Improve phpdoc to make it more explicit
2 parents f389405 + 91ad61e commit 54243ab

File tree

6 files changed

+31
-8
lines changed

6 files changed

+31
-8
lines changed

ContainerBuilder.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,12 +419,16 @@ public function fileExists($path, $trackContents = true)
419419
* @throws BadMethodCallException When this ContainerBuilder is compiled
420420
* @throws \LogicException if the extension is not registered
421421
*/
422-
public function loadFromExtension($extension, array $values = array())
422+
public function loadFromExtension($extension, array $values = null)
423423
{
424424
if ($this->isCompiled()) {
425425
throw new BadMethodCallException('Cannot load from an extension on a compiled container.');
426426
}
427427

428+
if (func_num_args() < 2) {
429+
$values = array();
430+
}
431+
428432
$namespace = $this->getExtension($extension)->getAlias();
429433

430434
$this->extensionConfigs[$namespace][] = $values;

Loader/YamlFileLoader.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -755,7 +755,7 @@ private function loadFromExtensions(array $content)
755755
continue;
756756
}
757757

758-
if (!is_array($values)) {
758+
if (!is_array($values) && null !== $values) {
759759
$values = array();
760760
}
761761

Tests/Compiler/ResolveDefinitionTemplatesPassTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -259,23 +259,23 @@ public function testDeepDefinitionsResolving()
259259
$this->process($container);
260260

261261
$configurator = $container->getDefinition('sibling')->getConfigurator();
262-
$this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($configurator));
262+
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $configurator);
263263
$this->assertSame('parentClass', $configurator->getClass());
264264

265265
$factory = $container->getDefinition('sibling')->getFactory();
266-
$this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($factory[0]));
266+
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $factory[0]);
267267
$this->assertSame('parentClass', $factory[0]->getClass());
268268

269269
$argument = $container->getDefinition('sibling')->getArgument(0);
270-
$this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($argument));
270+
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $argument);
271271
$this->assertSame('parentClass', $argument->getClass());
272272

273273
$properties = $container->getDefinition('sibling')->getProperties();
274-
$this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($properties['prop']));
274+
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $properties['prop']);
275275
$this->assertSame('parentClass', $properties['prop']->getClass());
276276

277277
$methodCalls = $container->getDefinition('sibling')->getMethodCalls();
278-
$this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($methodCalls[0][1][0]));
278+
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $methodCalls[0][1][0]);
279279
$this->assertSame('parentClass', $methodCalls[0][1][0]->getClass());
280280
}
281281

Tests/Fixtures/includes/ProjectExtension.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@ class ProjectExtension implements ExtensionInterface
88
{
99
public function load(array $configs, ContainerBuilder $configuration)
1010
{
11-
$config = call_user_func_array('array_merge', $configs);
11+
$configuration->setParameter('project.configs', $configs);
12+
$configs = array_filter($configs);
13+
14+
if ($configs) {
15+
$config = call_user_func_array('array_merge', $configs);
16+
} else {
17+
$config = array();
18+
}
1219

1320
$configuration->setDefinition('project.service.bar', new Definition('FooClass'));
1421
$configuration->setParameter('project.parameter.bar', isset($config['foo']) ? $config['foo'] : 'foobar');

Tests/Fixtures/yaml/null_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
project: ~

Tests/Loader/YamlFileLoaderTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,17 @@ public function testExtensions()
219219
}
220220
}
221221

222+
public function testExtensionWithNullConfig()
223+
{
224+
$container = new ContainerBuilder();
225+
$container->registerExtension(new \ProjectExtension());
226+
$loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
227+
$loader->load('null_config.yml');
228+
$container->compile();
229+
230+
$this->assertSame(array(null), $container->getParameter('project.configs'));
231+
}
232+
222233
public function testSupports()
223234
{
224235
$loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator());

0 commit comments

Comments
 (0)