Controller
extends Kohana_Controller
Abstract controller class. Controllers should only be created using a Request.
Controllers methods will be automatically called in the following order by the request:
$controller = new Controller_Foo($request);
$controller->before();
$controller->action_bar();
$controller->after();
The controller action should add the output it creates to
$this->response->body($output)
, typically in the form of a View, during the
"action" part of execution.
Information
This class is a transparent base class for Kohana_Controller
Constants
- None
Properties
-
public Request $request
-
Request that created the controller
-
Default value:
NULL
-
public Response $response
-
The response that will be returned from controller
-
Default value:
NULL
Methods
public __construct(Request $request , Response $response ) (defined in Kohana_Controller)
Creates a new controller instance. Each controller must be constructed with the request object that created it.
Parameters
- Request $request required - Request that created the controller
- Response $response required - The request's response
Return Values
- void
Source Code
public function __construct(Request $request, Response $response)
{
// Assign the request to the controller
$this->request = $request;
// Assign a response to the controller
$this->response = $response;
}
public after() (defined in Kohana_Controller)
Automatically executed after the controller action. Can be used to apply transformation to the response, add extra output, and execute other custom code.
Return Values
- void
Source Code
public function after()
{
// Nothing by default
}
public before() (defined in Kohana_Controller)
Automatically executed before the controller action. Can be used to set class properties, do authorization checks, and execute other custom code.
Return Values
- void
Source Code
public function before()
{
// Nothing by default
}
public execute() (defined in Kohana_Controller)
Executes the given action and calls the Controller::before and Controller::after methods.
Can also be used to catch exceptions from actions in a single place.
- Before the controller action is called, the Controller::before method will be called.
- Next the controller action will be called.
- After the controller action is called, the Controller::after method will be called.
Tags
Return Values
- Response
Source Code
public function execute()
{
// Execute the "before action" method
$this->before();
// Determine the action to use
$action = 'action_'.$this->request->action();
// If the action doesn't exist, it's a 404
if ( ! method_exists($this, $action))
{
throw HTTP_Exception::factory(404,
'The requested URL :uri was not found on this server.',
[':uri' => $this->request->uri()]
)->request($this->request);
}
// Execute the action itself
$this->{$action}();
// Execute the "after action" method
$this->after();
// Return the response
return $this->response;
}
public static redirect([ string $uri = string(0) "" , int $code = integer 302 ] ) (defined in Kohana_Controller)
Issues a HTTP redirect.
Proxies to the HTTP::redirect method.
Parameters
- string $uri = string(0) "" - URI to redirect to
- int $code = integer 302 - HTTP Status code to use for the redirect
Tags
Source Code
public static function redirect($uri = '', $code = 302)
{
return HTTP::redirect( (string) $uri, $code);
}
protected check_cache([ string $etag = NULL ] ) (defined in Kohana_Controller)
Checks the browser cache to see the response needs to be returned, execution will halt and a 304 Not Modified will be sent if the browser cache is up to date.
$this->check_cache(sha1($content));
Parameters
- string $etag = NULL - Resource Etag
Return Values
- Response
Source Code
protected function check_cache($etag = NULL)
{
return HTTP::check_cache($this->request, $this->response, $etag);
}