Modules
abstract Controller_REST
extends Kohana_Controller_REST
extends Controller
extends Kohana_Controller
Abstract Controller class for RESTful controller mapping. Supports GET, PUT, POST, and DELETE. By default, these methods will be mapped to these actions:
- GET
- Mapped to the "index" action, lists all objects
- POST
- Mapped to the "create" action, creates a new object
- PUT
- Mapped to the "update" action, update an existing object
- DELETE
- Mapped to the "delete" action, delete an existing object
Additional methods can be supported by adding the method and action to
the $_action_map property.
Using this class within a website will require heavy modification, due to most web browsers only supporting the GET and POST methods. Generally, this class should only be used for web services and APIs.
Class declared in SYSPATH/classes/controller/rest.php on line 3.
Constants
- None
Properties
Methods
Properties
public
Request$requestRequest that created the controller
protected
array$_action_mapREST types
protected
string$_action_requestedrequested action
Methods
public __construct( Request $request ) (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
Return Values
void
Source Code
public function __construct(Request $request)
{
// Assign the request to the controller
$this->request = $request;
}
public action_invalid( ) (defined in Kohana_Controller_REST)
Sends a 405 "Method Not Allowed" response and a list of allowed actions.
Source Code
public function action_invalid()
{
// Send the "Method Not Allowed" response
$this->request->status = 405;
$this->request->headers['Allow'] = implode(', ', array_keys($this->_action_map));
}
public after( ) (defined in Kohana_Controller)
Automatically executed after the controller action. Can be used to apply transformation to the request 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_REST)
Checks the requested method against the available methods. If the method is supported, sets the request action from the map. If not supported, the "invalid" action will be called.
Source Code
public function before()
{
$this->_action_requested = $this->request->action;
if ( ! isset($this->_action_map[Request::$method]))
{
$this->request->action = 'invalid';
}
else
{
$this->request->action = $this->_action_map[Request::$method];
}
return parent::before();
}