From 638d3b0f59fb4c25d03477c50d1e25715104bd6b Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 14 May 2010 11:50:19 +0200 Subject: [PATCH] [WebBundle] made a small optimization --- src/Symfony/Framework/WebBundle/Helper/ActionsHelper.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Framework/WebBundle/Helper/ActionsHelper.php b/src/Symfony/Framework/WebBundle/Helper/ActionsHelper.php index 2df98f5952..799a271d95 100644 --- a/src/Symfony/Framework/WebBundle/Helper/ActionsHelper.php +++ b/src/Symfony/Framework/WebBundle/Helper/ActionsHelper.php @@ -59,7 +59,7 @@ class ActionsHelper extends Helper * * path: An array of path parameters (only when the first argument is a controller) * * query: An array of query parameters (only when the first argument is a controller) * * ignore_errors: true to return an empty string in case of an error - * * alt: an alternative controller to execute in case of an error (an array with the controller, the path arguments, the query arguments) + * * alt: an alternative controller to execute in case of an error (can be a controller, a URI, or an array with the controller, the path arguments, and the query arguments) * * @param string $controller A controller name to execute (a string like BlogBundle:Post:index), or a relative URI * @param array $options An array of options @@ -80,6 +80,11 @@ class ActionsHelper extends Helper $options['path'] = Escaper::unescape($options['path']); $options['query'] = Escaper::unescape($options['query']); + return $this->doRender($controller, $options); + } + + protected function doRender($controller, array $options = array()) + { // controller or URI? $request = $this->container->getRequestService(); if (0 === strpos($controller, '/')) { @@ -101,7 +106,7 @@ class ActionsHelper extends Helper $options['path'] = isset($alt[1]) ? $alt[1] : array(); $options['query'] = isset($alt[2]) ? $alt[2] : array(); - return $this->render($alt[0], $options); + return $this->doRender($alt[0], $options); } if (!$options['ignore_errors']) {