@@ -46,15 +46,12 @@ You need to pass the TTL in the options array of the session handler you are usi
46
46
.. code-block :: php
47
47
48
48
// config/services.php
49
- use Symfony\Component\DependencyInjection\Reference;
50
49
use Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler;
51
50
52
- $container
53
- ->register(RedisSessionHandler::class)
54
- ->setArguments([
55
- new Reference('Redis'),
56
- ['ttl' => 600],
57
- ]);
51
+ $services
52
+ ->set(RedisSessionHandler::class)
53
+ ->arg('$redis', new Reference('Redis'))
54
+ ->arg('$options', ['ttl' => 600]);
58
55
59
56
60
57
.. _configuring-the-TTL-dynamically-at-runtime :
@@ -79,7 +76,7 @@ The callback will be called right before the session is written.
79
76
Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler :
80
77
arguments :
81
78
- ' @Redis'
82
- - { 'ttl': !closure [ '@my.ttl.handler'] }
79
+ - { 'ttl': !closure '@my.ttl.handler' }
83
80
84
81
my.ttl.handler :
85
82
class : Some\InvokableClass # some class with an __invoke() method
@@ -94,26 +91,28 @@ The callback will be called right before the session is written.
94
91
<service id =" Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler" >
95
92
<argument type =" service" id =" Redis" />
96
93
<argument type =" collection" >
97
- <argument key =" ttl" >600</ argument >
94
+ <argument key =" ttl" type = " closure " id = " my.ttl.handler " / >
98
95
</argument >
99
96
</service >
97
+ <!-- some class with an __invoke() method -->
98
+ <service id =" my.ttl.handler" class =" Some\InvokableClass" >
99
+ <!-- Inject whatever dependencies you need to be able to resolve a TTL for the current session -->
100
+ <argument type =" service" id =" security" />
101
+ </service >
100
102
</services >
101
103
102
104
.. code-block :: php
103
105
104
106
// config/services.php
105
- use Symfony\Component\DependencyInjection\Reference;
106
107
use Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler;
107
108
108
- $container
109
- ->register(RedisSessionHandler::class)
110
- ->setArguments([
111
- new Reference('Redis'),
112
- ['ttl' => new Reference('my.ttl.handler')],
113
- ]);
114
-
115
- $container
109
+ $services
110
+ ->set(RedisSessionHandler::class)
111
+ ->arg('$redis', new Reference('Redis'))
112
+ ->arg('$options', ['ttl' => closure(service('my.ttl.handler'))]);
113
+
114
+ $services
116
115
// some class with an __invoke() method
117
- ->register ('my.ttl.handler', 'Some\InvokableClass')
116
+ ->set ('my.ttl.handler', 'Some\InvokableClass')
118
117
// Inject whatever dependencies you need to be able to resolve a TTL for the current session
119
- ->addArgument(new Reference ('security'));
118
+ ->arg('$security', service ('security'));
0 commit comments