[TwigBridge] fixed AppVariable compat with older Symfony versions

This commit is contained in:
Fabien Potencier 2015-01-25 02:59:50 +01:00
parent 3d174a4058
commit b0d041fd60
1 changed files with 21 additions and 9 deletions

View File

@ -74,7 +74,7 @@ class AppVariable
throw new \RuntimeException('The "app.security" variable is not available.');
}
return $this->container->get('security');
return $this->container->get('security.context');
}
/**
@ -87,9 +87,13 @@ class AppVariable
public function getUser()
{
if (null === $this->tokenStorage) {
if (null === $this->container) {
throw new \RuntimeException('The "app.user" variable is not available.');
}
$this->tokenStorage = $this->container->get('security.context');
}
if (!$token = $this->tokenStorage->getToken()) {
return;
}
@ -108,9 +112,13 @@ class AppVariable
public function getRequest()
{
if (null === $this->requestStack) {
if (null === $this->container) {
throw new \RuntimeException('The "app.request" variable is not available.');
}
$this->requestStack = $this->container->get('request_stack');
}
return $this->requestStack->getCurrentRequest();
}
@ -121,10 +129,6 @@ class AppVariable
*/
public function getSession()
{
if (null === $this->requestStack) {
throw new \RuntimeException('The "app.session" variable is not available.');
}
if ($request = $this->getRequest()) {
return $request->getSession();
}
@ -138,9 +142,13 @@ class AppVariable
public function getEnvironment()
{
if (null === $this->environment) {
if (null === $this->container) {
throw new \RuntimeException('The "app.environment" variable is not available.');
}
$this->environment = $this->container->getParameter('kernel.environment');
}
return $this->environment;
}
@ -152,9 +160,13 @@ class AppVariable
public function getDebug()
{
if (null === $this->debug) {
if (null === $this->container) {
throw new \RuntimeException('The "app.debug" variable is not available.');
}
$this->debug = $this->container->getParameter('kernel.debug');
}
return $this->debug;
}
}