名前

Mojolicious::Routes - いつでもルーティングで行き先を発見する

使い方

use Mojolicious::Routes;

# 簡単なルーティング
my $r = Mojolicious::Routes->new;
$r->route('/')->to(controller => 'blog', action => 'welcome');

# 高度なルーティング
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) });

説明

Mojolicious::Routesは有名なルーティングパターンのとても強力な実装で、 Mojolicious Webフレームワークの中心です。 より多くのことを知りたいなら、Mojolicious::Guides::Routingを見てください。

属性

Mojolicious::Routesは次の属性を実装しています。

base_classes

my $classes = $r->base_classes;
$r          = $r->base_classes(['MyApp::Controller']);

コントローラーを識別するために利用されるベースクラス。 デフォルトはMojolicious::ControllerMojoです。

cache

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

ルーティングのキャッシュ。 デフォルトはMojo::Cacheオブジェクト。

conditions

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

すべての利用可能な条件を格納しています。

hidden

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

ルーティングで隠されるコントローラーのメソッドと属性。

namespaces

my $namespaces = $r->namespaces;
$r             = $r->namespaces(['Foo::Bar::Controller']);

コントローラーを探すための名前空間。

# コントローラーを読み込むために他の名前空間を追加
push @{$r->namespaces}, 'MyApp::MyController';

shortcuts

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

このルーティングのためにすべての追加的なルーティングのショートカットを格納します。

types

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

プレースホルダーのタイプを登録します。デフォルトは、「num」だけでデフォルトで定義されています。

メソッド

Mojolicious::RoutesMojo::Baseのすべてのメソッドを 継承しており、次のメソッドを実装しています。

add_condition

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

新しい条件をこのルーティングのために追加します。

add_shortcut

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

新しいショートカットをこのルーティングのために追加します。

add_type

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

プレースホルダーのタイプを登録します。

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

continue

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

ディスパッチチェーンを継続して、すべてのアクションのためにMojoliciousaround_actionフックを発行します。

dispatch

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

matchでルーティングをマッチし、continueディスパッチします。

hide

$r = $r->hide('new');

コントローラーのメソッドあるいは属性をルーティングから隠します。

is_hidden

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

コントローラーメソッドあるいは属性がルーターから隠されているかどうかをチェックします。

lookup

my $route = $r->lookup('foo');

Mojolicious::Routes::Routefindを使って名前によってルーティングを見つけ、 次の参照のために、すべての結果をキャッシュします。

match

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

Mojolicious::Routes::Matchを使ってルートをマッチします。

参照

Mojolicious, Mojolicious::Guides, http://mojolicio.us.

(Mojolicious 8.12を反映。2019年6月13日更新)