Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Mojolicious::Routes(3)User Contributed Perl DocumentatioMojolicious::Routes(3)

NAME
       Mojolicious::Routes - Always find your destination with routes

SYNOPSIS
	 use Mojolicious::Routes;

	 # Simple route
	 my $r = Mojolicious::Routes->new;
	 $r->any('/')->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 ($c) { $c->render(text => 'Go	away!',	status => 405) });

DESCRIPTION
       Mojolicious::Routes is the core of the Mojolicious web framework.

       See Mojolicious::Guides::Routing	for more.

TYPES
       These placeholder types are available by	default.

   num
	 $r->get('/article/<id:num>');

       Placeholder value needs to be a non-fractional number, similar to the
       regular expression "([0-9]+)".

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 Mojolicious.

   cache
	 my $cache = $r->cache;
	 $r	   = $r->cache(Mojo::Cache->new);

       Routing cache, defaults to a Mojo::Cache	object.

   conditions
	 my $conditions	= $r->conditions;
	 $r		= $r->conditions({foo => sub {...}});

       Contains	all available conditions.

   hidden
	 my $hidden = $r->hidden;
	 $r	    = $r->hidden(['attr', 'has', 'new']);

       Controller attributes and methods that are hidden from router, defaults
       to "attr", "has", "new" and "tap".

   namespaces
	 my $namespaces	= $r->namespaces;
	 $r		= $r->namespaces(['MyApp::Controller', 'MyApp']);

       Namespaces to load controllers from.

	 # Add another namespace to load controllers from
	 push @{$r->namespaces}, 'MyApp::MyController';

   shortcuts
	 my $shortcuts = $r->shortcuts;
	 $r	       = $r->shortcuts({foo => sub {...}});

       Contains	all available shortcuts.

   types
	 my $types = $r->types;
	 $r	   = $r->types({lower => qr/[a-z]+/});

       Registered placeholder types, by	default	only "num" is already defined.

METHODS
       Mojolicious::Routes inherits all	methods	from
       Mojolicious::Routes::Route and implements the following new ones.

   add_condition
	 $r = $r->add_condition(foo => sub ($route, $c,	$captures, $arg) {...});

       Register	a condition.

	 $r->add_condition(foo => sub ($route, $c, $captures, $arg) {
	   ...
	   return 1;
	 });

   add_shortcut
	 $r = $r->add_shortcut(foo => sub ($route, @args) {...});

       Register	a shortcut.

	 $r->add_shortcut(foo => sub ($route, @args) {...});

   add_type
	 $r = $r->add_type(foo => qr/\w+/);
	 $r = $r->add_type(foo => ['bar', 'baz']);

       Register	a placeholder type.

	 $r->add_type(lower => qr/[a-z]+/);

   continue
	 $r->continue(Mojolicious::Controller->new);

       Continue	dispatch chain and emit	the hook "around_action" in
       Mojolicious for every action.

   dispatch
	 my $bool = $r->dispatch(Mojolicious::Controller->new);

       Match routes with "match" and dispatch with "continue".

   hide
	 $r = $r->hide('foo', 'bar');

       Hide controller attributes and methods from router.

   is_hidden
	 my $bool = $r->is_hidden('foo');

       Check if	controller attribute or	method 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.

   match
	 $r->match(Mojolicious::Controller->new);

       Match routes with Mojolicious::Routes::Match.

SEE ALSO
       Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.

perl v5.32.1			  2020-12-07		Mojolicious::Routes(3)

NAME | SYNOPSIS | DESCRIPTION | TYPES | ATTRIBUTES | METHODS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mojolicious::Routes&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help