CGI::Application::Dispatch v2.00_01
CGI::ApplicationのMLでCGI::Application::Dispatchのv2.00_01がでてます。
svnで取得できます。
svn://svn.cromedome.net/CGI-Application-Dispatch
新しいdispatch tableがいい感じ。
今までは、PATH_INFOが
/Module/Runmode
で固定でしたが、これをいじる事ができます。
dispatchのカスタマイズをするにはCGI::Application::Dispatchを継承してdispatch_argsをoverrideします。
package MyApp::Dispatch;
use base 'CGI::Application::Dispatch';
sub dispatch_args {
return {
prefix => 'MyApp',
table => [
'' => { app => 'Welcome', rm => 'start' },
:app/:rm' => { },
'admin/:app/:rm' => { prefix => 'MyApp::Admin' },
],
};
}
package main;
MyApp::Dispatch->dispatch;
tableの中身は
PATH_INFO => Local設定のhashref
の配列です。PATH_INFO中で
:app = Module
:rm = Runmode
:foo = $self->param('foo')で取得可能
になります。Local設定では、prefixやModule、Runmodeを指定可能っす。
これは結構便利なんじゃないでしょうか。