NAME
Mojolicious::Routes - Always find your destination with routes!
SYNOPSIS
use
Mojolicious::Routes;
# Simple route
my
$r
= Mojolicious::Routes->new;
$r
->route(
'/'
)->to(
controller
=>
'blog'
,
action
=>
'welcome'
);
# More advanced routes
my
$blog
=
$r
->under(
'/blog'
);
$blog
->get(
'/list'
)->to(
'blog#list'
);
$blog
->get(
'/:id'
=> [
id
=>
qr/\d+/
])->to(
'blog#show'
,
id
=> 23);
$blog
->patch(
sub
{
shift
->render(
text
=>
'Go away!'
,
status
=> 405) });
DESCRIPTION
Mojolicious::Routes is the core of the Mojolicious web framework.
See Mojolicious::Guides::Routing for more.
ATTRIBUTES
Mojolicious::Routes inherits all attributes from Mojolicious::Routes::Route and implements the following new ones.
base_classes
my
$classes
=
$r
->base_classes;
$r
=
$r
->base_classes([
'MyApp::Controller'
]);
Base classes used to identify controllers, defaults to Mojolicious::Controller and Mojo.
cache
my
$cache
=
$r
->cache;
$r
=
$r
->cache(Mojo::Cache->new);
Routing cache, defaults to a Mojo::Cache object.
# Disable caching
$r
->cache(0);
conditions
my
$conditions
=
$r
->conditions;
$r
=
$r
->conditions({
foo
=>
sub
{...}});
Contains all available conditions.
hidden
my
$hidden
=
$r
->hidden;
$r
=
$r
->hidden([
qw(attr has new)
]);
Controller methods and attributes that are hidden from router, defaults to attr
, has
, new
and tap
.
namespaces
my
$namespaces
=
$r
->namespaces;
$r
=
$r
->namespaces([
'Foo::Bar::Controller'
]);
Namespaces to load controllers from.
# Add another namespace to load controllers from
push
@{
$r
->namespaces},
'MyApp::Controller'
;
shortcuts
my
$shortcuts
=
$r
->shortcuts;
$r
=
$r
->shortcuts({
foo
=>
sub
{...}});
Contains all available shortcuts.
METHODS
Mojolicious::Routes inherits all methods from Mojolicious::Routes::Route and implements the following new ones.
add_condition
$r
=
$r
->add_condition(
foo
=>
sub
{...});
Add a new condition.
add_shortcut
$r
=
$r
->add_shortcut(
foo
=>
sub
{...});
Add a new shortcut.
auto_render
$r
->auto_render(Mojolicious::Controller->new);
Automatic rendering.
dispatch
my
$success
=
$r
->dispatch(Mojolicious::Controller->new);
Match routes with Mojolicious::Routes::Match and dispatch.
hide
$r
=
$r
->hide(
qw(foo bar)
);
Hide controller methods and attributes from router.
is_hidden
my
$success
=
$r
->is_hidden(
'foo'
);
Check if controller method or attribute is hidden from router.
lookup
my
$route
=
$r
->lookup(
'foo'
);
Find route by name with "find" in Mojolicious::Routes::Route and cache all results for future lookups.
route
my
$route
=
$r
->route;
my
$route
=
$r
->route(
'/:action'
);
my
$route
=
$r
->route(
'/:action'
,
action
=>
qr/\w+/
);
my
$route
=
$r
->route(
format
=> 0);
Generate route matching all HTTP request methods.