Catalyst入門2-ちょこちょこいじくる

最初のページ(http://localhost:3000)をいじくるにはMyApp/Controller/Root.pmに色々書き込めばいい!(らしい)

ここにごにょごにょしたいときは、適当な名前のルーチンを作る

sub hello : Local{
   my ($self,$c) = @_;
   $c->response->output("Hello,World");
}

http://localhost:3000/hello
にアクセスするとHello,Worldと表示される。

次に/foo/barとか作る方法。コントローラーの作成

$ perl script/myapp_create.pl controller Foo

lib/MyApp/Controller/Foo.pmが作成される。

Foo.pmにごにょごにょ書いていけばいいようだ。
普通にここにbarルーチンとか作成していけば、/foo/barなどの表示が出来る。

で、ここまでの事を、ちょっとまとめ。

復習というかまとめ

MyApp/Controller/Root.pm ⇒ アプリケーションのルート(/)を処理するためのコントローラー
MyApp/Controller/Foo.pm  ⇒ アプリケーションの/foo以下を処理するためのコントローラー

それぞれのコントローラーのメソッドがアクションになる。
defaultは何にも該当するアクションのURLがたたかれたときに実行されるアクション。

sub bar : Local {
# LocalはPerl組み込み機能のアトリビュートと呼ばれるもの。
  • Local:一番よく使われる。そのコントローラーのクラス名を基礎にしたURLと対応するアクションになる
  • Private:内部的なもの。URL直叩きでは見る事が出来ない。
  • Path:Path('foo/boo')などとして、パスを直接指定できる
  • RegexRegex('^foo$')などとして、URLを正規表現で評価する。
  • LocalRegex:RegexはURL全体に対しての正規表現なのに対し、LocalRegexはその対象がコントローラーが扱えるスコープに限定される。
  • Global:fooアクションを/fooなどアプリケーションのトップレベルにマッピングする