@@ -57,6 +57,10 @@ public function load(array $configs, ContainerBuilder $container)
57
57
$ this ->loadProxyClient ($ container , $ loader , $ config ['proxy_client ' ]);
58
58
}
59
59
60
+ if (isset ($ config ['test ' ])) {
61
+ $ this ->loadTest ($ container , $ loader , $ config ['test ' ]);
62
+ }
63
+
60
64
if ($ config ['cache_manager ' ]['enabled ' ]) {
61
65
$ loader ->load ('cache_manager.xml ' );
62
66
}
@@ -196,21 +200,17 @@ private function createRequestMatcher(ContainerBuilder $container, $path = null,
196
200
197
201
private function loadProxyClient (ContainerBuilder $ container , XmlFileLoader $ loader , array $ config )
198
202
{
199
- $ default = empty ($ config ['default ' ]) ? false : $ config ['default ' ];
200
203
if (isset ($ config ['varnish ' ])) {
201
204
$ this ->loadVarnish ($ container , $ loader , $ config ['varnish ' ]);
202
- if (!$ default ) {
203
- $ default = 'varnish ' ;
204
- }
205
205
}
206
206
if (isset ($ config ['nginx ' ])) {
207
207
$ this ->loadNginx ($ container , $ loader , $ config ['nginx ' ]);
208
- if (!$ default ) {
209
- $ default = 'nginx ' ;
210
- }
211
208
}
212
209
213
- $ container ->setAlias ($ this ->getAlias () . '.default_proxy_client ' , $ this ->getAlias () . '.proxy_client. ' . $ default );
210
+ $ container ->setAlias (
211
+ $ this ->getAlias () . '.default_proxy_client ' ,
212
+ $ this ->getAlias () . '.proxy_client. ' . $ this ->getDefault ($ config )
213
+ );
214
214
}
215
215
216
216
private function loadVarnish (ContainerBuilder $ container , XmlFileLoader $ loader , array $ config )
@@ -247,6 +247,73 @@ private function loadNginx(ContainerBuilder $container, XmlFileLoader $loader, a
247
247
$ container ->setParameter ($ this ->getAlias () . '.proxy_client.nginx.purge_location ' , $ config ['purge_location ' ]);
248
248
}
249
249
250
+ private function loadTest (ContainerBuilder $ container , XmlFileLoader $ loader , array $ config )
251
+ {
252
+ $ container ->setParameter ($ this ->getAlias () . '.test.cache_header ' , $ config ['cache_header ' ]);
253
+
254
+ if ($ config ['proxy_server ' ]) {
255
+ $ this ->loadProxyServer ($ container , $ loader , $ config ['proxy_server ' ]);
256
+ }
257
+
258
+ if (isset ($ config ['client ' ]['varnish ' ]['enabled ' ])
259
+ || isset ($ config ['client ' ]['nginx ' ]['enabled ' ])) {
260
+ $ loader ->load ('test_client.xml ' );
261
+
262
+ if ($ config ['client ' ]['varnish ' ]['enabled ' ]) {
263
+ $ container ->getDefinition ($ this ->getAlias () . '.test.client.varnish ' )
264
+ ->setAbstract (false );
265
+ }
266
+
267
+ if ($ config ['client ' ]['nginx ' ]['enabled ' ]) {
268
+ $ container ->getDefinition ($ this ->getAlias () . '.test.client.nginx ' )
269
+ ->setAbstract (false );
270
+ }
271
+
272
+ $ container ->setAlias (
273
+ $ this ->getAlias () . '.test.default_client ' ,
274
+ $ this ->getAlias () . '.test.client. ' . $ this ->getDefault ($ config ['client ' ])
275
+ );
276
+ }
277
+ }
278
+
279
+ private function loadProxyServer (ContainerBuilder $ container , XmlFileLoader $ loader , array $ config )
280
+ {
281
+ if (isset ($ config ['varnish ' ])) {
282
+ $ this ->loadVarnishProxyServer ($ container , $ loader , $ config ['varnish ' ]);
283
+ }
284
+
285
+ if (isset ($ config ['nginx ' ])) {
286
+ $ this ->loadNginxProxyServer ($ container , $ loader , $ config ['varnish ' ]);
287
+ }
288
+
289
+ $ container ->setAlias (
290
+ $ this ->getAlias () . '.test.default_proxy_server ' ,
291
+ $ this ->getAlias () . '.test.proxy_server. ' . $ this ->getDefault ($ config )
292
+ );
293
+ }
294
+
295
+ private function loadVarnishProxyServer (ContainerBuilder $ container , XmlFileLoader $ loader , $ config )
296
+ {
297
+ $ loader ->load ('varnish_proxy.xml ' );
298
+ foreach ($ config as $ key => $ value ) {
299
+ $ container ->setParameter (
300
+ $ this ->getAlias () . '.test.proxy_server.varnish. ' . $ key ,
301
+ $ value
302
+ );
303
+ }
304
+ }
305
+
306
+ private function loadNginxProxyServer (ContainerBuilder $ container , XmlFileLoader $ loader , $ config )
307
+ {
308
+ $ loader ->load ('nginx_proxy.xml ' );
309
+ foreach ($ config as $ key => $ value ) {
310
+ $ container ->setParameter (
311
+ $ this ->getAlias () . '.test.proxy_server.nginx. ' . $ key ,
312
+ $ value
313
+ );
314
+ }
315
+ }
316
+
250
317
private function loadTagRules (ContainerBuilder $ container , array $ config )
251
318
{
252
319
$ tagDefinition = $ container ->getDefinition ($ this ->getAlias () . '.event_listener.tag ' );
@@ -283,4 +350,19 @@ private function validateUrl($url, $msg)
283
350
throw new InvalidConfigurationException (sprintf ($ msg , $ url ));
284
351
}
285
352
}
353
+
354
+ private function getDefault (array $ config )
355
+ {
356
+ if (isset ($ config ['default ' ])) {
357
+ return $ config ['default ' ];
358
+ }
359
+
360
+ if (isset ($ config ['varnish ' ])) {
361
+ return 'varnish ' ;
362
+ }
363
+
364
+ if (isset ($ config ['nginx ' ])) {
365
+ return 'nginx ' ;
366
+ }
367
+ }
286
368
}
0 commit comments