Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* ルーティング [#k72c01bb]
** デフォルトルーティング [#u743da58]
sub startup {
my $r = $self->routes;
$r->route('/:x/:y')->to('test#index', id => 1);
}
package MyApp:Test;
sub index {
$self->stash->{x}; # foo
$self->stash->{y}; # bar
$self->stash->{id}; # 1
}
- 以上の場合、route()で2つのパスを持つ引数を指定している...
-- もし、http://localhost:3000/foo/bar/bazのようなURLを受...
- ルーティング設定を元にMyApp::Testクラスのindexメソッド...
- メソッド内ではstashの中にxやyをキー名にしてURLで指定し...
** bridge()を使って共通初期処理とアクセス制御 [#h4a87093]
sub startup {
my $self = shift;
my $r = $self->routes;
my $init = $r->bridge->to(controller => 'util', actio...
$init->route("/index")->to(controller => 'top', actio...
$init->route("/login/index")->to(controller => 'login...
$init->route("/login/logout")->to(controller => 'logi...
my $auth_ok = $init->bridge->to(controller => 'common...
$auth_ok->route("/blog/list")->to(controller => 'blog...
$auth_ok->route("/blog/edit")->to(controller => 'blog...
}
package MyApp:Util;
# 共通初期処理
sub init {
$self->stash->{session}->load;
$self->stash->{session}->create unless $self->stash->...
$self->{stash}->{auth} = undef;
if ( $self->stash->{session}->data('auth') ) {
$self->{stash}->{auth} = $self->stash->{session}-...
}
return 1;
}
# ログイン判定
sub auth {
my $self = shift;
unless ( $self->stash->{auth} ) {
$self->stash->{session}->data( 'status_mesg' => '...
$self->redirect_to('login/index');
return;
}
return 1;
}
- 最初に共通初期処理(Util::init)を行う。
- /indexと/login/indexと/login/logoutのURLに関してはその...
- それ以外のURLについてはログイン判定(Util::auth)を行い...
終了行:
* ルーティング [#k72c01bb]
** デフォルトルーティング [#u743da58]
sub startup {
my $r = $self->routes;
$r->route('/:x/:y')->to('test#index', id => 1);
}
package MyApp:Test;
sub index {
$self->stash->{x}; # foo
$self->stash->{y}; # bar
$self->stash->{id}; # 1
}
- 以上の場合、route()で2つのパスを持つ引数を指定している...
-- もし、http://localhost:3000/foo/bar/bazのようなURLを受...
- ルーティング設定を元にMyApp::Testクラスのindexメソッド...
- メソッド内ではstashの中にxやyをキー名にしてURLで指定し...
** bridge()を使って共通初期処理とアクセス制御 [#h4a87093]
sub startup {
my $self = shift;
my $r = $self->routes;
my $init = $r->bridge->to(controller => 'util', actio...
$init->route("/index")->to(controller => 'top', actio...
$init->route("/login/index")->to(controller => 'login...
$init->route("/login/logout")->to(controller => 'logi...
my $auth_ok = $init->bridge->to(controller => 'common...
$auth_ok->route("/blog/list")->to(controller => 'blog...
$auth_ok->route("/blog/edit")->to(controller => 'blog...
}
package MyApp:Util;
# 共通初期処理
sub init {
$self->stash->{session}->load;
$self->stash->{session}->create unless $self->stash->...
$self->{stash}->{auth} = undef;
if ( $self->stash->{session}->data('auth') ) {
$self->{stash}->{auth} = $self->stash->{session}-...
}
return 1;
}
# ログイン判定
sub auth {
my $self = shift;
unless ( $self->stash->{auth} ) {
$self->stash->{session}->data( 'status_mesg' => '...
$self->redirect_to('login/index');
return;
}
return 1;
}
- 最初に共通初期処理(Util::init)を行う。
- /indexと/login/indexと/login/logoutのURLに関してはその...
- それ以外のURLについてはログイン判定(Util::auth)を行い...
ページ名: