[FrameworkBundle] Fixed OutOfBoundException when session handler_id is null
When a null is provided for framework.session.handler_id the FrameworkExtension attempts to set the session storage to null for the 'session.storage.php_bridge' by altering the second argument. According to the session.xml service definition, there is no second argument, and it is in fact the first (read, 0 index) argument that should be changed.
This commit is contained in:
parent
df0a02dc10
commit
e3561ce49c
@ -319,7 +319,7 @@ class FrameworkExtension extends Extension
|
|||||||
if (null == $config['handler_id']) {
|
if (null == $config['handler_id']) {
|
||||||
// Set the handler class to be null
|
// Set the handler class to be null
|
||||||
$container->getDefinition('session.storage.native')->replaceArgument(1, null);
|
$container->getDefinition('session.storage.native')->replaceArgument(1, null);
|
||||||
$container->getDefinition('session.storage.php_bridge')->replaceArgument(1, null);
|
$container->getDefinition('session.storage.php_bridge')->replaceArgument(0, null);
|
||||||
} else {
|
} else {
|
||||||
$container->setAlias('session.handler', $config['handler_id']);
|
$container->setAlias('session.handler', $config['handler_id']);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$container->loadFromExtension('framework', array(
|
||||||
|
'session' => array(
|
||||||
|
'handler_id' => null,
|
||||||
|
),
|
||||||
|
));
|
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
|
||||||
|
<container xmlns="http://symfony.com/schema/dic/services"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:framework="http://symfony.com/schema/dic/symfony"
|
||||||
|
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
|
||||||
|
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
|
||||||
|
|
||||||
|
<framework:config>
|
||||||
|
<framework:session handler-id="null"/>
|
||||||
|
</framework:config>
|
||||||
|
</container>
|
@ -0,0 +1,3 @@
|
|||||||
|
framework:
|
||||||
|
session:
|
||||||
|
handler_id: null
|
@ -114,6 +114,15 @@ abstract class FrameworkExtensionTest extends TestCase
|
|||||||
$this->assertEquals('/path/to/sessions', $container->getParameter('session.save_path'));
|
$this->assertEquals('/path/to/sessions', $container->getParameter('session.save_path'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testNullSessionHandler()
|
||||||
|
{
|
||||||
|
$container = $this->createContainerFromFile('session');
|
||||||
|
|
||||||
|
$this->assertTrue($container->hasDefinition('session'), '->registerSessionConfiguration() loads session.xml');
|
||||||
|
$this->assertNull($container->getDefinition('session.storage.native')->getArgument(1));
|
||||||
|
$this->assertNull($container->getDefinition('session.storage.php_bridge')->getArgument(0));
|
||||||
|
}
|
||||||
|
|
||||||
public function testTemplating()
|
public function testTemplating()
|
||||||
{
|
{
|
||||||
$container = $this->createContainerFromFile('full');
|
$container = $this->createContainerFromFile('full');
|
||||||
|
Reference in New Issue
Block a user