# Welcome to URI Demo Home

Here you can test and learn about the handling of URI routes in Doo framework.

Check out the links page for a list of URLs available in this demo. All links can be accessed with or without 'index.php'.

See the routes.conf.php source.

Test drive Auto routing:

    # There is a controller called HelloController
    # The controller has 3 methods index, walao, sayhi
    /hello
    /hello/walao
    /hello/sayhi/doophp

    # Get variables can be used as well
    /hello/sayhi/doophp/?title=Mr.

    # Camel case in auto routes, CamelCaseController
    /camel-case
    /camel-case/moo

Test drive Extension name:

    # There is a controller called SimpleController
    # The controller has 1 methods simple()
    /simple
    /simple.html
    /simple.json
    /simple.rss

    # Dynamic routes defined as
    $route['*']['/simple/:pagename']

    # Call $this->extension to get the extension name.
    /simple/superpage.json
    /simple/some page.rss
    /simple/only_xml/pagename.xml  - This route only support .xml

Test drive RESTful routes

    # You might want to use Firefox Poster addon for a quick test.
    /api/food/list/1.json  -  GET return result in Json format
    /api/food/list/1.xml  -  GET return result in Xml format
    /api/food/create  -  POST request, post variable to test
    /api/food/update  - PUT request, send a PUT request to test
    /api/food/delete/1 - DELETE request, send a DELETE request to test

Test drive Redirection

    // here's how you do redirection to an existing route internally
    // http status code is optional, default 302 Moved Temporarily
    /about
    /home

    // redirect to http://doophp.com
    /doophp

    // If you have tamper data FF addon, you can see a 301 status is issued instead of 302
    /easier

Test drive routes with Authentication

    // Http digest auth and subfolder example.
    // the Admin controller is in a subfolder 'admin'
    // it is easier to manage controller files with Doophp
    /admin
    # Login with 'admin'=>'1234' or 'demo'=>'abc'

Matching parameters in routes

    // You can match a parameter's value against a pattern
    // If not matched it will throw up 404 error.
    /news/2009/07

    // Values that do not match
    /news/10009/aa

    /**
     * The matching pattern
     * year   ^\d{4}$
     * month  ^\d{2}$
     */

Almost identical routes

    //almost identical routes examples, must assigned a matching pattern to the parameters
    //if no pattern is assigned, it will match the route defined first.

    # this show news by id
    /news/88

    # this show news by title
    /news/doophp is great

    /**
     * The matching pattern
     * id   ^\d+$
     * title  [a-z0-9]+
     */

BACK TO TOP