Remove hard dependency of RequestContext in AssetsExtension

This commit is contained in:
Pablo Godel 2014-08-23 17:40:29 -04:00
parent aa58bb8048
commit 5ad4d8a359
2 changed files with 7 additions and 2 deletions

View File

@ -24,7 +24,7 @@ class AssetsExtension extends \Twig_Extension
private $container;
private $context;
public function __construct(ContainerInterface $container, RequestContext $requestContext)
public function __construct(ContainerInterface $container, RequestContext $requestContext = null)
{
$this->container = $container;
$this->context = $requestContext;
@ -94,6 +94,7 @@ class AssetsExtension extends \Twig_Extension
* @param string $url The URL that has to be absolute
*
* @return string The absolute URL
* @throws \RuntimeException
*/
private function ensureUrlIsAbsolute($url)
{
@ -101,6 +102,10 @@ class AssetsExtension extends \Twig_Extension
return $url;
}
if (!$this->context) {
throw new \RuntimeException('To generate an absolute URL for an asset, the Symfony Routing component is required.');
}
if ('' === $host = $this->context->getHost()) {
return $url;
}

View File

@ -66,7 +66,7 @@
<service id="twig.extension.assets" class="%twig.extension.assets.class%" public="false">
<tag name="twig.extension" />
<argument type="service" id="service_container" />
<argument type="service" id="router.request_context" />
<argument type="service" id="router.request_context" on-invalid="null" />
</service>
<service id="twig.extension.actions" class="%twig.extension.actions.class%" public="false">