NAME
Mojolicious::Plugin::AutoRoute - Mojolicious plugin to create routes automatically
SYNOPSIS
# Mojolicious
$self->plugin('AutoRoute');
# Mojolicious::Lite
plugin 'AutoRoute';
# With option
plugin 'AutoRoute', route => $r;
DESCRIPTION
Mojolicious::Plugin::AutoRoute is a Mojolicious plugin to create routes automatically.
If you put templates into auto
directory, the corresponding routes is created automatically.
For example:
TEMPLATES ROUTES
templates/auto/index.html.ep # /
/foo.html.ep # /foo
/foo/bar.html.ep # /foo/bar
/foo/bar/baz.html.ep # /foo/bar/baz
I like PHP simplicity. All thing needed is that you put PHP files into some directory, and write program. You don't need to create routes manually.
This plugin gives PHP simplicity to Mojolicious.
EXAMPLE
use Mojolicious::Lite;
# AutoRoute
plugin 'AutoRoute';
# Custom routes
get '/create/:id' => sub { shift->render_maybe('/create') };
app->start;
__DATA__
@@ auto/index.html.ep
/
@@ auto/foo.html.ep
/foo
@@ auto/bar.html.ep
/bar
@@ auto/foo/bar/baz.html.ep
/foo/bar/baz
@@ auto/json.html.ep
<%
$self->render(json => {foo => 1});
return;
%>
@@ create.html.ep
/create/<%= $id %>
OPTIONS
route
route => $route;
You can set parent route if you need. This is Mojolicious::Routes object. Default is $app-
routes>.
top_dir
top_dir => 'myauto'
Top directory. default is auto
.
TIPS
If you want to create custom route, use render_maybe
method.
# Mojolicious Lite
any '/foo' => sub { shift->render_maybe('/foo') };
# Mojolicious
$r->any('/foo' => sub { shift->render_maybe('/foo') };
For backwrod comaptible, you can use template
function.
use Mojolicious::Plugin::AutoRoute::Util 'template';
# Mojolicious Lite
any '/foo' => template '/foo';
# Mojolicious
$r->any('/foo' => template '/foo');
METHOD
register
$plugin->register($app);
Register plugin in Mojolicious application.