Class Controller

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.

package
Kohana
category
Controller
author
Kohana Team
copyright
(c) Kohana Team
license
https://koseven.ga/LICENSE.md


Information

This class is a transparent base class for Kohana_Controller

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.

  1. Before the controller action is called, the Controller::before method will be called.
  2. Next the controller action will be called.
  3. 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);
}

Do you want to contribute to Koseven?

We need YOUR help!

This project is open source. What does this mean? YOU can help:
  • Found a bug? Report it on Github
  • Need a feature? Add it Here
  • Want to help? Join the Forum
Go to Github