ライブラリ/フレームワークごとのURL書き換え その3:Catalystの場合

なんか楽しくなってきたのでCatalystも見てみる。
Catalystは各アクションのメソッドにアトリビュートJavaでいうアノテーション)で定義します。Cubbyにめちゃめちゃ近い、どっかでCatalystの記事を見て影響を受けていたのかも。URL-to-action dispatchだそうです。パラメータの取得は正規表現のグループ番号で取得する方式です。

package MyApp::C::Quux;

# http://localhost:3000/foo/bar/yada だけにマッチ
sub baz : Path('foo/bar/yada') { }

# http://localhost:3000/bar にのみマッチ
sub bar : Global { }


# http://localhost:3000/item23/order189 にマッチ
sub bar : Regex('^item(\d+)/order(\d+)$') { 
   my ( $self, $c ) = @_;
   my $item_number  = $c->request->snippets->[0];
   my $order_number = $c->request->snippets->[1];
   # ...    
}


参考