Mojolicious::Routes::Match
Find routes
- Provided by: libmojolicious-perl (Version: 4.63+dfsg-1)
- Report a bug
Find routes
use Mojolicious::Controller;
use Mojolicious::Routes;
use Mojolicious::Routes::Match;
# Routes
my $r = Mojolicious::Routes->new;
$r->get('/:controller/:action');
$r->put('/:controller/:action');
# Match
my $c = Mojolicious::Controller->new;
my $match = Mojolicious::Routes::Match->new(root => $r);
$match->match($c => {method => 'PUT', path => '/foo/bar'});
say $match->stack->[0]{controller};
say $match->stack->[0]{action};
# Render
say $match->path_for;
say $match->path_for(action => 'baz');
Mojolicious::Routes::Match finds routes in Mojolicious::Routes structures.
Mojolicious::Routes::Match implements the following attributes.
my $current = $match->current; $match = $match->current(2);
Current position on the "stack", defaults to 0.
my $endpoint = $match->endpoint; $match = $match->endpoint(Mojolicious::Routes::Route->new);
The route endpoint that matched, usually a Mojolicious::Routes::Route objects.
my $root = $match->root; $match = $match->root(Mojolicious::Routes->new);
The root of the route structure, usually a Mojolicious::Routes object.
my $stack = $match->stack;
$match = $match->stack([{foo => 'bar'}]);
Captured parameters with nesting history.
Mojolicious::Routes::Match inherits all methods from Mojo::Base and implements the following new ones.
$match->match(Mojolicious::Controller->new, {method => 'GET', path => '/'});
Match controller and options against "root" to find appropriate "endpoint".
my $path = $match->path_for;
my $path = $match->path_for(foo => 'bar');
my $path = $match->path_for({foo => 'bar'});
my $path = $match->path_for('named');
my $path = $match->path_for('named', foo => 'bar');
my $path = $match->path_for('named', {foo => 'bar'});
my ($path, $ws) = $match->path_for;
my ($path, $ws) = $match->path_for(foo => 'bar');
my ($path, $ws) = $match->path_for({foo => 'bar'});
my ($path, $ws) = $match->path_for('named');
my ($path, $ws) = $match->path_for('named', foo => 'bar');
my ($path, $ws) = $match->path_for('named', {foo => 'bar'});
Render matching route with parameters into path.
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.