ライブラリ/フレームワークごとの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]; # ... }
参考