From 298ff6a6ca6ce6999dd34ca4f8fe2109e17fe5ef Mon Sep 17 00:00:00 2001 From: Sebastian Krebs Date: Wed, 21 Nov 2012 21:00:39 +0100 Subject: [PATCH 1/4] [FrameworkBundle] Added caching to TemplateController --- .../Controller/TemplateController.php | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php b/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php index fd6f1aaf787b8..b21b1f55812bb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php +++ b/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php @@ -21,15 +21,41 @@ */ class TemplateController extends ContainerAware { + /** + * Default max age time in seconds for client (browser) caching + * + * @var int + */ + const MAX_AGE = 86400; + + /** + * Default max age time in seconds for shared (proxy) caching + * + * @var int + */ + const SHARED_AGE = 86400; + /** * Renders a template. * * @param string $template The template name + * @param int|null $maxAge Max age for client caching + * @param int|null $sharedAge Max age for shared (proxy) caching + * @param bool|null $private Whether or not caching should apply for client caches only * * @return Response A Response instance */ - public function templateAction($template) + public function templateAction($template, $maxAge = null, $sharedAge = null, $private = null) { - return $this->container->get('templating')->renderResponse($template); + /** @var $response \Symfony\Component\HttpFoundation\Response */ + $response = $this->container->get('templating')->renderResponse($template); + $response->setMaxAge($maxAge ? : self::MAX_AGE); + $response->setSharedMaxAge($sharedAge ? : self::SHARED_AGE); + if ($private) { + $response->setPrivate(); + } else { + $response->setPublic(); + } + return $response; } } From f00e7160abd29a897b09267cd369085ff70f31a0 Mon Sep 17 00:00:00 2001 From: Sebastian Krebs Date: Fri, 23 Nov 2012 22:07:43 +0100 Subject: [PATCH 2/4] [FrameworkBundle] Added caching to TemplateController Changed bevahiour: - No caching by default - Implicit public caching, whe one of maxAge or sharedAge is set - Explicit private caching, when private is set and evaluates to true - Explicit public caching, when private is set and evaluates to false --- .../Controller/TemplateController.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php b/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php index b21b1f55812bb..19d5b6ece725e 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php +++ b/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php @@ -49,12 +49,17 @@ public function templateAction($template, $maxAge = null, $sharedAge = null, $pr { /** @var $response \Symfony\Component\HttpFoundation\Response */ $response = $this->container->get('templating')->renderResponse($template); - $response->setMaxAge($maxAge ? : self::MAX_AGE); - $response->setSharedMaxAge($sharedAge ? : self::SHARED_AGE); + if ($maxAge) { + $response->setMaxAge($maxAge); + } + if ($sharedAge) { + $response->setSharedMaxAge($sharedAge ? : self::SHARED_AGE); + } + if ($private) { $response->setPrivate(); - } else { - $response->setPublic(); + } else if ($private === false || (is_null($private) && ($maxAge || $sharedAge))) { + $response->setPublic($private); } return $response; } From 351cfc0f5eed90d2dfed325606e9b370e61fdc42 Mon Sep 17 00:00:00 2001 From: Sebastian Krebs Date: Fri, 23 Nov 2012 22:11:29 +0100 Subject: [PATCH 3/4] [FrameworkBundle] Added caching to TemplateController Removed unused constants --- .../Controller/TemplateController.php | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php b/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php index 19d5b6ece725e..4505d6531e4db 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php +++ b/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php @@ -21,20 +21,6 @@ */ class TemplateController extends ContainerAware { - /** - * Default max age time in seconds for client (browser) caching - * - * @var int - */ - const MAX_AGE = 86400; - - /** - * Default max age time in seconds for shared (proxy) caching - * - * @var int - */ - const SHARED_AGE = 86400; - /** * Renders a template. * @@ -53,7 +39,7 @@ public function templateAction($template, $maxAge = null, $sharedAge = null, $pr $response->setMaxAge($maxAge); } if ($sharedAge) { - $response->setSharedMaxAge($sharedAge ? : self::SHARED_AGE); + $response->setSharedMaxAge($sharedAge); } if ($private) { From 9a6527288fe9648187bd26bb058494437cdbe106 Mon Sep 17 00:00:00 2001 From: Sebastian Krebs Date: Tue, 4 Dec 2012 20:40:33 +0100 Subject: [PATCH 4/4] Fix DocComment param type 'bool' to 'Boolean' --- .../Bundle/FrameworkBundle/Controller/TemplateController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php b/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php index 4505d6531e4db..4357e76ad4cb3 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php +++ b/src/Symfony/Bundle/FrameworkBundle/Controller/TemplateController.php @@ -27,7 +27,7 @@ class TemplateController extends ContainerAware * @param string $template The template name * @param int|null $maxAge Max age for client caching * @param int|null $sharedAge Max age for shared (proxy) caching - * @param bool|null $private Whether or not caching should apply for client caches only + * @param Boolean|null $private Whether or not caching should apply for client caches only * * @return Response A Response instance */