2007年6月20日

CGI::Application はじめました

いろいろあって、CGI::Application を一度は触っておこうという事になったので、その備忘録とかいろいろ、たぶん、綴っていく予定、、。
とりあえず、sample的なものを作りはじめた。
ディレクトリ構成は今のところ、こんな感じ
/index.cgi
/MyApp -- /Dispatch.pm
/Welcome.pm
index.cgi
#!/usr/bin/env perl

use strict;

use MyApp::Dispatch;
MyApp::Dispatch->dispatch();

exit;
MyApp::Dispatch
package MyApp::Dispatch;

use strict;
use base 'CGI::Application::Dispatch';

sub dispatch_args {
return {
prefix => 'MyApp',
table => [
'' => { app => 'Welcome', rm => 'start' },
':app/:rm' => { },
],
};
}

1;
MyApp::Welcome
package MyApp::Welcome;

use base 'CGI::Application';

use strict;
use CGI::Application::Plugin::AutoRunmode;

sub cgiapp_init {
my $self = shift;
$self->header_props(-type => 'text/html; charset=SJIS');
}

sub setup {
}

sub start : StartRunmode {
my $self = shift;

my $q = $self->query();

my $output .= $q->start_html(-title => 'Welcome CGI::Application!!');

$output .= '<h1>Welcome CGI::Application!!</h1>';

$output .= $q->end_html();

return $output;
}
"setup" Method が無いと動かない模様、、。まぁ、そのうち使うだろうから定義だけはしておくべし。。。
上記のように作成すると、URL とかが、
http://www.exsample.com/index.cgi/welcome/start
とかアクセスできる

0 件のコメント: