Change the way that we do RESTful routing.

1) We now use __call() in REST_Controller to handle any requests to a controller
   that were not already handled.  In the case of RESTful controllers, this should
   be the only entry point (although they're free to break the model and add other
   ones.. nothing stops them).

   This means that we can remove all the catch-all routes in
   routes.php which greatly simplifies it.

2) Move request_method() and output_format() out of REST_Controller and into the REST
   helper in core/helpers/rest.php

3) Experiment with letting the various subclasses check the output_format and deal with
   it themselves.  This simplifies the API, but it might be a bad idea in that it might
   push too much work to the individual controllers.  It's a balancing act, time will tell,
   I'm willing to change it back later.
This commit is contained in:
Bharat Mediratta
2008-11-19 04:20:35 +00:00
parent e0efdee8b2
commit 5638fc5fb6
9 changed files with 92 additions and 71 deletions
+4 -3
View File
@@ -32,7 +32,7 @@ class Comments_Controller extends REST_Controller {
header("HTTP/1.1 400 Bad Request");
return;
}
print comment::get_comments($item_id, $this->get_output_format());
print comment::get_comments($item_id);
}
/**
@@ -59,9 +59,10 @@ class Comments_Controller extends REST_Controller {
/**
* Display an existing comment.
* @todo Set proper Content-Type in a central place (REST_Controller::dispatch?).
* @see Rest_Controller::_show($resource, $output_format)
* @see Rest_Controller::_show($resource)
*/
public function _show($comment, $output_format) {
public function _show($comment) {
$output_format = rest::output_format();
switch ($output_format) {
case "xml":
header("Content-Type: application/xml");