I'm exploring a few PHP frameworks and the current front runner is Kohana.
Having a Rails background I've become used to what the rails community calls "RESTful" routes. So a "GET /posts" displays all posts and is handled by the index method of the Posts Controller. A "POST /posts" creates a new post object and is handled by a different method of the Posts Controller.
Since the path in both these 2 requests is identical, the router needs to make decisions based on the HTTP method.
Is the router in Kohana capable of doing this?
Kohana does not support RESTful routes by default, but there is a RESTful module that adds support for it. See the RESTful wiki for usage.
Kohana v3.x supports RESTful controllers directly. Just extend Controller_REST
instead of Controller
and all the route action will be the request method. (A POST
request would be targeted to action_post
, etc.)
You could also add these lines to your controller's before() method:
if ($this->request->method() == "POST")
{
$this->request->action("post_".$this->request->action());
}
so GET /controller/posts will be handled by the action_posts() method in your controller, while POST /controller/posts will be handled by the action_post_posts() method.
PS: The built-in Controller_REST was removed in Kohana 3.2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With