Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* Chainedアクション [#w68f61cd]
** 何のためにあるのか? [#tee1e78a]
Catalystは原則的にコントローラークラスのクラス名やメソッ...
** 使い方 [#h4df2f41]
下の例にあるように、コントローラクラスのアクションメソッ...
sub doFoo : Chained('doBar') PathPart('foo') CaptureArgs...
** 具体例 [#u46bb72a]
以下がサンプルのコントローラクラス。このサンプルはhttp://...
package MyApp::Controller::Test;
use base 'Catalyst::Controller';
sub a : Chained('/') PathPart('A') CaptureArgs(0) { }
sub b : Chained('a') PathPart('B') CaptureArgs(0) { }
sub c : Chained('b') PathPart('C') Args(0) { }
1;
*** Chained [#u63249fa]
メソッドの実行順番を決める。Catalystでは、あるメソッドは...
- sub cのChained('b')のbはsub bのbに相当する。
- sub bのChained('a')のaはsub aのaに相当する。
- sub aでChained('/')になっているが、これはこれ以上チェー...
- (すなわち、どのような構成のURLであろうと、(メソッドを...
以上のようなわけで、このサンプルではリクエストを受けると...
*** PathPart [#m60452e5]
URLの表記を決める。
- Chainedによってsub a→sub b→sub cでメソッドが実行される...
- 対応するPathPartはA→B→C、
- 従って、URLはhttp://localhost/A/B/Cになる。
- もしPathPart('B')を('X')に変えれば、URLはhttp://localho...
このようにChainedアクションを使うと、メソッド名(a,b,c)...
*** CaptureArgs/Args [#acf90282]
引数をどう取るか決める。このサンプルではすべて(0)を指定し...
もしsub bをCaptureArgs(1)すると、URLはhttp://localhost/A/...
*** CaptureArgsとArgsの違い [#c39098fd]
- URLの最後の部分(PathPart('C'))のメソッド(sub c)はCa...
- しかし、URLの先頭(PathPart('A'))や途中(PathPart('B')...
- もしsub bをArgs(0)にすると、http://localhost/A/B/Cに加...
** 最後に [#hb79d1f3]
以上の通りだけれど、慣れるまで分かりづらいので(例えば、P...
catalyst.pl MyApp
を実行して、MyApp/lib/MyApp/Controller/Test.pmとして上の...
./myapp_server.pl -r
を実行し、ブラウザでhttp://localhost:3000/A/B/Cにアクセス...
** 参考 [#ad05caf0]
http://gihyo.jp/dev/serial/01/modern-perl/0007?page=1
終了行:
* Chainedアクション [#w68f61cd]
** 何のためにあるのか? [#tee1e78a]
Catalystは原則的にコントローラークラスのクラス名やメソッ...
** 使い方 [#h4df2f41]
下の例にあるように、コントローラクラスのアクションメソッ...
sub doFoo : Chained('doBar') PathPart('foo') CaptureArgs...
** 具体例 [#u46bb72a]
以下がサンプルのコントローラクラス。このサンプルはhttp://...
package MyApp::Controller::Test;
use base 'Catalyst::Controller';
sub a : Chained('/') PathPart('A') CaptureArgs(0) { }
sub b : Chained('a') PathPart('B') CaptureArgs(0) { }
sub c : Chained('b') PathPart('C') Args(0) { }
1;
*** Chained [#u63249fa]
メソッドの実行順番を決める。Catalystでは、あるメソッドは...
- sub cのChained('b')のbはsub bのbに相当する。
- sub bのChained('a')のaはsub aのaに相当する。
- sub aでChained('/')になっているが、これはこれ以上チェー...
- (すなわち、どのような構成のURLであろうと、(メソッドを...
以上のようなわけで、このサンプルではリクエストを受けると...
*** PathPart [#m60452e5]
URLの表記を決める。
- Chainedによってsub a→sub b→sub cでメソッドが実行される...
- 対応するPathPartはA→B→C、
- 従って、URLはhttp://localhost/A/B/Cになる。
- もしPathPart('B')を('X')に変えれば、URLはhttp://localho...
このようにChainedアクションを使うと、メソッド名(a,b,c)...
*** CaptureArgs/Args [#acf90282]
引数をどう取るか決める。このサンプルではすべて(0)を指定し...
もしsub bをCaptureArgs(1)すると、URLはhttp://localhost/A/...
*** CaptureArgsとArgsの違い [#c39098fd]
- URLの最後の部分(PathPart('C'))のメソッド(sub c)はCa...
- しかし、URLの先頭(PathPart('A'))や途中(PathPart('B')...
- もしsub bをArgs(0)にすると、http://localhost/A/B/Cに加...
** 最後に [#hb79d1f3]
以上の通りだけれど、慣れるまで分かりづらいので(例えば、P...
catalyst.pl MyApp
を実行して、MyApp/lib/MyApp/Controller/Test.pmとして上の...
./myapp_server.pl -r
を実行し、ブラウザでhttp://localhost:3000/A/B/Cにアクセス...
** 参考 [#ad05caf0]
http://gihyo.jp/dev/serial/01/modern-perl/0007?page=1
ページ名: