@@ -87,13 +87,13 @@ private function getClustersNode()
87
87
->defaultNull ()
88
88
->beforeNormalization ()
89
89
->ifTrue (
90
- function ($ v ) {
91
- return $ v === 'true ' || $ v === 'false ' ;
90
+ function ($ v ) {
91
+ return $ v === 'true ' || $ v === 'false ' ;
92
92
}
93
93
)
94
94
->then (
95
- function ($ v ) {
96
- return (bool ) $ v ;
95
+ function ($ v ) {
96
+ return (bool ) $ v ;
97
97
}
98
98
)
99
99
->end ()
@@ -112,6 +112,9 @@ function($v) {
112
112
->end ()
113
113
->arrayNode ('options ' )
114
114
->info ("Options for Redis and Memcached. " )
115
+ ->children ()
116
+ ->append ($ this ->getMemcachedOptions ())
117
+ ->end ()
115
118
->end ()
116
119
->arrayNode ('hosts ' )
117
120
->prototype ('array ' )
@@ -164,6 +167,64 @@ function ($v) {
164
167
return $ node ;
165
168
}
166
169
170
+ /**
171
+ * @return ArrayNodeDefinition
172
+ */
173
+ private function getMemcachedOptions ()
174
+ {
175
+ $ treeBuilder = new TreeBuilder ();
176
+ $ node = $ treeBuilder ->root ('memcached ' );
177
+
178
+ if (class_exists ('\Memcached ' )) {
179
+ $ node
180
+ ->children ()
181
+ ->booleanNode ('compression ' )
182
+ ->end ()
183
+ ->enumNode ('serializer ' )
184
+ ->values (array ('php ' , 'igbinary ' , 'json ' ))
185
+ ->end ()
186
+ ->scalarNode ('prefix_key ' )
187
+ ->end ()
188
+ ->enumNode ('hash ' )
189
+ ->values (array ('default ' , 'md5 ' , 'crc ' , 'fnv1_64 ' , 'fnv1a_64 ' , 'fnv1_32 ' , 'fnv1a_32 ' , 'hsieh ' , 'murmur ' ))
190
+ ->end ()
191
+ ->enumNode ('distribution ' )
192
+ ->values (array ('modula ' , 'consistent ' ))
193
+ ->end ()
194
+ ->booleanNode ('libketama_compatible ' )
195
+ ->end ()
196
+ ->booleanNode ('uffer_writes ' )
197
+ ->end ()
198
+ ->booleanNode ('binary_protocol ' )
199
+ ->end ()
200
+ ->booleanNode ('no_block ' )
201
+ ->end ()
202
+ ->booleanNode ('tcp_nodelay ' )
203
+ ->end ()
204
+ ->integerNode ('socket_send_size ' )
205
+ ->end ()
206
+ ->integerNode ('socket_recv_size ' )
207
+ ->end ()
208
+ ->integerNode ('connect_timeout ' )
209
+ ->end ()
210
+ ->integerNode ('retry_timeout ' )
211
+ ->end ()
212
+ ->integerNode ('send_timeout ' )
213
+ ->end ()
214
+ ->integerNode ('recv_timeout ' )
215
+ ->end ()
216
+ ->integerNode ('poll_timeout ' )
217
+ ->end ()
218
+ ->booleanNode ('cache_lookups ' )
219
+ ->end ()
220
+ ->integerNode ('server_failure_limit ' )
221
+ ->end ()
222
+ ->end ();
223
+ }
224
+
225
+ return $ node ;
226
+ }
227
+
167
228
/**
168
229
* Configure the "aequasi_cache.session" section
169
230
*
0 commit comments