diff -r 000000000000 -r 7f95f8617b0b vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,191 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\FrameworkBundle\Controller; + +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\RedirectResponse; +use Symfony\Component\DependencyInjection\ContainerAware; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; +use Symfony\Component\Form\FormTypeInterface; +use Symfony\Component\Form\Form; +use Symfony\Component\Form\FormBuilder; +use Symfony\Bundle\DoctrineBundle\Registry; +use Symfony\Component\HttpFoundation\Request; + +/** + * Controller is a simple implementation of a Controller. + * + * It provides methods to common features needed in controllers. + * + * @author Fabien Potencier + */ +class Controller extends ContainerAware +{ + /** + * Generates a URL from the given parameters. + * + * @param string $name The name of the route + * @param mixed $parameters An array of parameters + * @param Boolean $absolute Whether to generate an absolute URL + * + * @return string The generated URL + */ + public function generateUrl($route, $parameters = array(), $absolute = false) + { + return $this->container->get('router')->generate($route, $parameters, $absolute); + } + + /** + * Forwards the request to another controller. + * + * @param string $controller The controller name (a string like BlogBundle:Post:index) + * @param array $path An array of path parameters + * @param array $query An array of query parameters + * + * @return Response A Response instance + */ + public function forward($controller, array $path = array(), array $query = array()) + { + return $this->container->get('http_kernel')->forward($controller, $path, $query); + } + + /** + * Returns a RedirectResponse to the given URL. + * + * @param string $url The URL to redirect to + * @param integer $status The status code to use for the Response + * + * @return RedirectResponse + */ + public function redirect($url, $status = 302) + { + return new RedirectResponse($url, $status); + } + + /** + * Returns a rendered view. + * + * @param string $view The view name + * @param array $parameters An array of parameters to pass to the view + * + * @return string The renderer view + */ + public function renderView($view, array $parameters = array()) + { + return $this->container->get('templating')->render($view, $parameters); + } + + /** + * Renders a view. + * + * @param string $view The view name + * @param array $parameters An array of parameters to pass to the view + * @param Response $response A response instance + * + * @return Response A Response instance + */ + public function render($view, array $parameters = array(), Response $response = null) + { + return $this->container->get('templating')->renderResponse($view, $parameters, $response); + } + + /** + * Returns a NotFoundHttpException. + * + * This will result in a 404 response code. Usage example: + * + * throw $this->createNotFoundException('Page not found!'); + * + * @return NotFoundHttpException + */ + public function createNotFoundException($message = 'Not Found', \Exception $previous = null) + { + return new NotFoundHttpException($message, $previous); + } + + /** + * Creates and returns a Form instance from the type of the form. + * + * @param string|FormTypeInterface $type The built type of the form + * @param mixed $data The initial data for the form + * @param array $options Options for the form + * + * @return Form + */ + public function createForm($type, $data = null, array $options = array()) + { + return $this->container->get('form.factory')->create($type, $data, $options); + } + + /** + * Creates and returns a form builder instance + * + * @param mixed $data The initial data for the form + * @param array $options Options for the form + * + * @return FormBuilder + */ + public function createFormBuilder($data = null, array $options = array()) + { + return $this->container->get('form.factory')->createBuilder('form', $data, $options); + } + + /** + * Shortcut to return the request service. + * + * @return Request + */ + public function getRequest() + { + return $this->container->get('request'); + } + + /** + * Shortcut to return the Doctrine Registry service. + * + * @return Registry + * + * @throws \LogicException If DoctrineBundle is not available + */ + public function getDoctrine() + { + if (!$this->container->has('doctrine')) { + throw new \LogicException('The DoctrineBundle is not installed in your application.'); + } + + return $this->container->get('doctrine'); + } + + /** + * Returns true if the service id is defined. + * + * @param string $id The service id + * + * @return Boolean true if the service id is defined, false otherwise + */ + public function has($id) + { + return $this->container->has($id); + } + + /** + * Gets a service by id. + * + * @param string $id The service id + * + * @return object The service + */ + public function get($id) + { + return $this->container->get($id); + } +}