diff options
| author | Bharat Mediratta <bharat@menalto.com> | 2008-11-19 04:20:35 +0000 |
|---|---|---|
| committer | Bharat Mediratta <bharat@menalto.com> | 2008-11-19 04:20:35 +0000 |
| commit | 5638fc5fb60823544f1944bdf40705a19b7365f1 (patch) | |
| tree | 2102a8053df65dda50807c3ad67fdeb416071ed3 /core/config/routes.php | |
| parent | e0efdee8b2a2ba2ee1b86cfb2b7863a88877c00e (diff) | |
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.
Diffstat (limited to 'core/config/routes.php')
| -rw-r--r-- | core/config/routes.php | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/core/config/routes.php b/core/config/routes.php index 0e2aa887..ac4a8cb0 100644 --- a/core/config/routes.php +++ b/core/config/routes.php @@ -18,20 +18,8 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -// FIXME Temporary workaround to show the welcome page at /welcome. -// The problem is that we're routing all requests to /{controllername} to Rest_Controller, -// even requests to controllers that do not implement Rest_Controller. -$config['^welcome$'] = 'welcome'; -$config['^media_rss/feed/(\d+)'] = 'media_rss/feed/$1'; - -// REST configuration -// Any resource requests (eg: album/1 or comment/3) get dispatched to the REST -// dispatcher, and the abstract REST_Controller is not directly routable. -$config['^rest'] = null; -$config['^rest/.*'] = null; -$config['^(\w+)/(\d+)$'] = '$1/dispatch/$2'; -$config['^(\w+)$'] = '$1/dispatch/0'; -$config['^form/(edit|add)/(\w+)/(.*)$'] = '$2/form_$1/$3'; +// The abstract REST_Controller is not directly routable. +$config['^rest\b'] = null; // For now our default page is the scaffolding. $config['_default'] = 'welcome'; |
