[FrameworkBundle] added PHPDoc to the Controller class

This commit is contained in:
Fabien Potencier 2010-07-27 11:53:34 +02:00
parent 88c742731d
commit 60670faf55
2 changed files with 43 additions and 23 deletions

View File

@ -28,28 +28,39 @@ class Controller
protected $container; protected $container;
protected $request; protected $request;
/**
* Constructor.
*
* @param \Symfony\Components\DependencyInjection\ContainerInterface $container A ContainerInterface instance
*/
function __construct(ContainerInterface $container) function __construct(ContainerInterface $container)
{ {
$this->container = $container; $this->container = $container;
$this->request = $this->container->get('request');
} }
/**
* Gets the Request.
*
* @return \Symfony\Components\HttpFoundation\Request A Request instance
*/
public function getRequest() public function getRequest()
{ {
if (null === $this->request) {
$this->request = $this->container->getRequestService();
}
return $this->request; return $this->request;
} }
public function setRequest(Request $request) /**
{ * Creates a Response instance.
return $this->request = $request; *
} * @param string $content The Response body
* @param integer $status The status code
* @param array $headers An array of HTTP headers
*
* @return \Symfony\Components\HttpFoundation\Response A Response instance
*/
public function createResponse($content = '', $status = 200, array $headers = array()) public function createResponse($content = '', $status = 200, array $headers = array())
{ {
$response = $this->container->getResponseService(); $response = $this->container->get('response');
$response->setContent($content); $response->setContent($content);
$response->setStatusCode($status); $response->setStatusCode($status);
foreach ($headers as $name => $value) { foreach ($headers as $name => $value) {
@ -70,7 +81,7 @@ class Controller
*/ */
public function generateUrl($route, array $parameters = array(), $absolute = false) public function generateUrl($route, array $parameters = array(), $absolute = false)
{ {
return $this->container->getRouterService()->generate($route, $parameters, $absolute); return $this->container->get('router')->generate($route, $parameters, $absolute);
} }
/** /**
@ -80,31 +91,41 @@ class Controller
* @param array $path An array of path parameters * @param array $path An array of path parameters
* @param array $query An array of query parameters * @param array $query An array of query parameters
* *
* @return Response A Response instance * @return \Symfony\Components\HttpFoundation\Response A Response instance
*/ */
public function forward($controller, array $path = array(), array $query = array()) public function forward($controller, array $path = array(), array $query = array())
{ {
$path['_controller'] = $controller; $path['_controller'] = $controller;
$subRequest = $this->getRequest()->duplicate($query, null, $path); $subRequest = $this->getRequest()->duplicate($query, null, $path);
return $this->container->getKernelService()->handle($subRequest, HttpKernelInterface::FORWARDED_REQUEST, true); return $this->container->get('kernel')->handle($subRequest, HttpKernelInterface::FORWARDED_REQUEST, true);
} }
/** /**
* Sends an HTTP redirect response * Returns an HTTP redirect Response.
*
* @return \Symfony\Components\HttpFoundation\Response A Response instance
*/ */
public function redirect($url, $status = 302) public function redirect($url, $status = 302)
{ {
$response = $this->container->getResponseService(); $response = $this->container->get('response');
$response->setStatusCode($status); $response->setStatusCode($status);
$response->headers->set('Location', $url); $response->headers->set('Location', $url);
return $response; return $response;
} }
/**
* 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()) public function renderView($view, array $parameters = array())
{ {
return $this->container->getTemplatingService()->render($view, $parameters); return $this->container->get('templating')->render($view, $parameters);
} }
/** /**
@ -112,17 +133,17 @@ class Controller
* *
* @param string $view The view name * @param string $view The view name
* @param array $parameters An array of parameters to pass to the view * @param array $parameters An array of parameters to pass to the view
* @param Response $response A response instance * @param \Symfony\Components\HttpFoundation\Response $response A response instance
* *
* @return Response A Response instance * @return \Symfony\Components\HttpFoundation\Response A Response instance
*/ */
public function render($view, array $parameters = array(), Response $response = null) public function render($view, array $parameters = array(), Response $response = null)
{ {
if (null === $response) { if (null === $response) {
$response = $this->container->getResponseService(); $response = $this->container->get('response');
} }
$response->setContent($this->container->getTemplatingService()->render($view, $parameters)); $response->setContent($this->container->get('templating')->render($view, $parameters));
return $response; return $response;
} }

View File

@ -168,7 +168,6 @@ class ControllerResolver implements ControllerResolverInterface
} }
$controller = new $class($this->container); $controller = new $class($this->container);
$controller->setRequest($request);
$method = $action.'Action'; $method = $action.'Action';
if (!method_exists($controller, $method)) { if (!method_exists($controller, $method)) {