vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/GlobalVariables.php
changeset 0 7f95f8617b0b
--- /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 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * 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 <fabien@symfony.com>
+ */
+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');
+    }
+}