[FrameworkBundle] Use more sophisticated validation and configuration.
This commit is contained in:
parent
af0a14009f
commit
ceaf69b32e
@ -184,10 +184,15 @@ class Configuration implements ConfigurationInterface
|
|||||||
->info('session configuration')
|
->info('session configuration')
|
||||||
->canBeUnset()
|
->canBeUnset()
|
||||||
->children()
|
->children()
|
||||||
->booleanNode('auto_start')->info('Flag for SessionListener to start session')
|
->booleanNode('auto_start')
|
||||||
->defaultValue(true)->end()
|
->defaultTrue()
|
||||||
->scalarNode('on_demand_mode')->info('Start session on demand (on access), 0 - off, 1 - on (strict), 2 - off (lax)')
|
->info('Flag for SessionListener to start session')
|
||||||
->defaultValue(1)->end()
|
->end()
|
||||||
|
->enumNode('on_demand_mode')
|
||||||
|
->values(array('off', 'on', 'off_lax'))
|
||||||
|
->defaultValue('on')
|
||||||
|
->info('Start session on demand: off, on, or off_lax')
|
||||||
|
->end()
|
||||||
->scalarNode('mock_name')->defaultValue('MOCKSESSID')->end()
|
->scalarNode('mock_name')->defaultValue('MOCKSESSID')->end()
|
||||||
->scalarNode('storage_id')->defaultValue('session.storage.native')->end()
|
->scalarNode('storage_id')->defaultValue('session.storage.native')->end()
|
||||||
->scalarNode('handler_id')->defaultValue('session.handler.native_file')->end()
|
->scalarNode('handler_id')->defaultValue('session.handler.native_file')->end()
|
||||||
|
@ -18,6 +18,7 @@ use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
|||||||
use Symfony\Component\Config\Resource\FileResource;
|
use Symfony\Component\Config\Resource\FileResource;
|
||||||
use Symfony\Component\Config\Resource\DirectoryResource;
|
use Symfony\Component\Config\Resource\DirectoryResource;
|
||||||
use Symfony\Component\Finder\Finder;
|
use Symfony\Component\Finder\Finder;
|
||||||
|
use Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface;
|
||||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||||
use Symfony\Component\Config\FileLocator;
|
use Symfony\Component\Config\FileLocator;
|
||||||
|
|
||||||
@ -318,7 +319,18 @@ class FrameworkExtension extends Extension
|
|||||||
$container->setParameter('session.auto_start', $config['auto_start']);
|
$container->setParameter('session.auto_start', $config['auto_start']);
|
||||||
|
|
||||||
// this controls the session start on demand feature
|
// this controls the session start on demand feature
|
||||||
$container->setParameter('session.storage.on_demand_mode', $config['on_demand_mode']);
|
switch ($config['on_demand_mode']) {
|
||||||
|
// already validated
|
||||||
|
case 'on':
|
||||||
|
$demand = SessionStorageInterface::START_ON_DEMAND;
|
||||||
|
break;
|
||||||
|
case 'off':
|
||||||
|
$demand = SessionStorageInterface::NO_START_ON_DEMAND_STRICT;
|
||||||
|
break;
|
||||||
|
case 'off_lax':
|
||||||
|
$demand = SessionStorageInterface::NO_START_ON_DEMAND_LAX;
|
||||||
|
}
|
||||||
|
$container->setParameter('session.storage.on_demand_mode', $demand);
|
||||||
|
|
||||||
$container->setParameter('session.storage.mock_name', $config['mock_name']);
|
$container->setParameter('session.storage.mock_name', $config['mock_name']);
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@
|
|||||||
<xsd:complexType name="session">
|
<xsd:complexType name="session">
|
||||||
<xsd:attribute name="auto-start" type="xsd:boolean" />
|
<xsd:attribute name="auto-start" type="xsd:boolean" />
|
||||||
<xsd:attribute name="on-demand-mode" type="xsd:string" />
|
<xsd:attribute name="on-demand-mode" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mock-name" type="xsd:string" />
|
||||||
<xsd:attribute name="storage-id" type="xsd:string" />
|
<xsd:attribute name="storage-id" type="xsd:string" />
|
||||||
<xsd:attribute name="handler-id" type="xsd:string" />
|
<xsd:attribute name="handler-id" type="xsd:string" />
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
@ -24,7 +24,7 @@ $container->loadFromExtension('framework', array(
|
|||||||
'session' => array(
|
'session' => array(
|
||||||
'storage_id' => 'session.storage.native',
|
'storage_id' => 'session.storage.native',
|
||||||
'handler_id' => 'session.handler.native_file',
|
'handler_id' => 'session.handler.native_file',
|
||||||
'on_demand_mode' => 1,
|
'on_demand_mode' => 'on',
|
||||||
'name' => '_SYMFONY',
|
'name' => '_SYMFONY',
|
||||||
'cookie_lifetime' => 86400,
|
'cookie_lifetime' => 86400,
|
||||||
'cookie_path' => '/',
|
'cookie_path' => '/',
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<framework:esi enabled="true" />
|
<framework:esi enabled="true" />
|
||||||
<framework:profiler only-exceptions="true" enabled="false" />
|
<framework:profiler only-exceptions="true" enabled="false" />
|
||||||
<framework:router resource="%kernel.root_dir%/config/routing.xml" type="xml" />
|
<framework:router resource="%kernel.root_dir%/config/routing.xml" type="xml" />
|
||||||
<framework:session gc-maxlifetime="90000" gc-probability="1" gc-divisor="108" storage-id="session.storage.native" handler-id="session.handler.native_file" name="_SYMFONY" cookie-lifetime="86400" cookie-path="/" cookie-domain="example.com" cookie-secure="true" cookie-httponly="true" save-path="/path/to/sessions" auto-start="true" on-demand-mode="1" />
|
<framework:session gc-maxlifetime="90000" gc-probability="1" gc-divisor="108" storage-id="session.storage.native" handler-id="session.handler.native_file" name="_SYMFONY" cookie-lifetime="86400" cookie-path="/" cookie-domain="example.com" cookie-secure="true" cookie-httponly="true" save-path="/path/to/sessions" auto-start="true" on-demand-mode="on" />
|
||||||
<framework:templating assets-version="SomeVersionScheme" cache="/path/to/cache" >
|
<framework:templating assets-version="SomeVersionScheme" cache="/path/to/cache" >
|
||||||
<framework:loader>loader.foo</framework:loader>
|
<framework:loader>loader.foo</framework:loader>
|
||||||
<framework:loader>loader.bar</framework:loader>
|
<framework:loader>loader.bar</framework:loader>
|
||||||
|
@ -18,7 +18,7 @@ framework:
|
|||||||
session:
|
session:
|
||||||
storage_id: session.storage.native
|
storage_id: session.storage.native
|
||||||
handler_id: session.handler.native_file
|
handler_id: session.handler.native_file
|
||||||
on_demand_mode: 1
|
on_demand_mode: on
|
||||||
name: _SYMFONY
|
name: _SYMFONY
|
||||||
cookie_lifetime: 86400
|
cookie_lifetime: 86400
|
||||||
cookie_path: /
|
cookie_path: /
|
||||||
|
Reference in New Issue
Block a user