@@ -217,13 +217,16 @@ private function loadVarnish(ContainerBuilder $container, XmlFileLoader $loader,
217217 {
218218 $ loader ->load ('varnish.xml ' );
219219 foreach ($ config ['servers ' ] as $ url ) {
220- $ this ->validateUrl ($ url , 'Not a valid varnish server address: "%s" ' );
220+ $ this ->validateUrl ($ url , 'Not a valid Varnish server address: "%s" ' );
221221 }
222222 if (!empty ($ config ['base_url ' ])) {
223- $ this ->validateUrl ($ config ['base_url ' ], 'Not a valid base path: "%s" ' );
223+ $ baseUrl = $ this ->prefixSchema ($ config ['base_url ' ], 'Not a valid base path: "%s" ' );
224+ $ this ->validateUrl ($ baseUrl , 'Not a valid base path: "%s" ' );
225+ } else {
226+ $ baseUrl = null ;
224227 }
225228 $ container ->setParameter ($ this ->getAlias () . '.proxy_client.varnish.servers ' , $ config ['servers ' ]);
226- $ container ->setParameter ($ this ->getAlias () . '.proxy_client.varnish.base_url ' , $ config [ ' base_url ' ] );
229+ $ container ->setParameter ($ this ->getAlias () . '.proxy_client.varnish.base_url ' , $ baseUrl );
227230 if ($ config ['guzzle_client ' ]) {
228231 $ container ->getDefinition ($ this ->getAlias () . '.proxy_client.varnish ' )
229232 ->addArgument (
@@ -237,13 +240,15 @@ private function loadNginx(ContainerBuilder $container, XmlFileLoader $loader, a
237240 {
238241 $ loader ->load ('nginx.xml ' );
239242 foreach ($ config ['servers ' ] as $ url ) {
240- $ this ->validateUrl ($ url , 'Not a valid nginx server address: "%s" ' );
243+ $ this ->validateUrl ($ url , 'Not a valid Nginx server address: "%s" ' );
241244 }
242245 if (!empty ($ config ['base_url ' ])) {
243- $ this ->validateUrl ($ config ['base_url ' ], 'Not a valid base path: "%s" ' );
246+ $ baseUrl = $ this ->prefixSchema ($ config ['base_url ' ], 'Not a valid base path: "%s" ' );
247+ } else {
248+ $ baseUrl = null ;
244249 }
245250 $ container ->setParameter ($ this ->getAlias () . '.proxy_client.nginx.servers ' , $ config ['servers ' ]);
246- $ container ->setParameter ($ this ->getAlias () . '.proxy_client.nginx.base_url ' , $ config [ ' base_url ' ] );
251+ $ container ->setParameter ($ this ->getAlias () . '.proxy_client.nginx.base_url ' , $ baseUrl );
247252 $ container ->setParameter ($ this ->getAlias () . '.proxy_client.nginx.purge_location ' , $ config ['purge_location ' ]);
248253 }
249254
@@ -341,14 +346,22 @@ private function loadInvalidatorRules(ContainerBuilder $container, array $config
341346 }
342347
343348 private function validateUrl ($ url , $ msg )
349+ {
350+ $ prefixed = $ this ->prefixSchema ($ url );
351+
352+ if (!$ parts = parse_url ($ prefixed )) {
353+ throw new InvalidConfigurationException (sprintf ($ msg , $ url ));
354+ }
355+ }
356+
357+
358+ private function prefixSchema ($ url )
344359 {
345360 if (false === strpos ($ url , ':// ' )) {
346361 $ url = sprintf ('%s://%s ' , 'http ' , $ url );
347362 }
348363
349- if (!$ parts = parse_url ($ url )) {
350- throw new InvalidConfigurationException (sprintf ($ msg , $ url ));
351- }
364+ return $ url ;
352365 }
353366
354367 private function getDefault (array $ config )
0 commit comments