diff -r 000000000000 -r 7f95f8617b0b vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/GlobalVariables.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/GlobalVariables.php Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,110 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\FrameworkBundle\Templating; + +use Symfony\Component\DependencyInjection\ContainerInterface; + +/** + * GlobalVariables is the entry point for Symfony global variables in Twig templates. + * + * @author Fabien Potencier + */ +class GlobalVariables +{ + protected $container; + + public function __construct(ContainerInterface $container) + { + $this->container = $container; + } + + /** + * Returns the security context service. + * + * @return Symfony\Component\Security\Core\SecurityContext|void The security context + */ + public function getSecurity() + { + if ($this->container->has('security.context')) { + return $this->container->get('security.context'); + } + } + + /** + * Returns the current user. + * + * @return mixed|void + * + * @see Symfony\Component\Security\Core\Authentication\Token\TokenInterface::getUser() + */ + public function getUser() + { + if (!$security = $this->getSecurity()) { + return; + } + + if (!$token = $security->getToken()) { + return; + } + + $user = $token->getUser(); + if (!is_object($user)) { + return; + } + + return $user; + } + + /** + * Returns the current request. + * + * @return Symfony\Component\HttpFoundation\Request|void The http request object + */ + public function getRequest() + { + if ($this->container->has('request') && $request = $this->container->get('request')) { + return $request; + } + } + + /** + * Returns the current session. + * + * @return Symfony\Component\HttpFoundation\Session|void The session + */ + public function getSession() + { + if ($request = $this->getRequest()) { + return $request->getSession(); + } + } + + /** + * Returns the current app environment. + * + * @return string The current environment string (e.g 'dev') + */ + public function getEnvironment() + { + return $this->container->getParameter('kernel.environment'); + } + + /** + * Returns the current app debug mode. + * + * @return Boolean The current debug mode + */ + public function getDebug() + { + return (Boolean) $this->container->getParameter('kernel.debug'); + } +}