ECS 4.0 + CGI::AppplicationでWebアプリを作る #01
CGI::ApplicationはWebアプリを作るためのフレームワーク。やることは大きく分けて三つ。
- 何種類のページを作るかを決める
- 各ページに対応するメソッドを、CGI::Applicationのサブクラスで定義する。
- 2のクラスのインスタンスを作成し、runメソッドを呼び出すCGIスクリプトを作る。
Webサイトにアクセスすると、runメソッドが呼ばれる。その中で決められたCGIパラメータに対応するメソッドが呼び出され、ページが表示されるという仕組み。つまりは、
if ($mode == "index") { ... } elsif ($mode == "search") { ... } elsif ($mode == "browse") { ... }
こういう風に書かなくて済む。他にも、プラグインで機能を追加できたりと、色々と便利らしい。
AmazonApp.pm
とりあえず、CGI::Applicationのサブクラスの大枠だけを作る。
package AmazonApp; use strict; use warnings; use base qw(CGI::Application); # 実行モードの設定 sub setup { my $self = shift; $self->mode_param("rm"); # 実行モードを判別するためのCGIパラメータ名 $self->start_mode("index"); # デフォルトの実行モード $self->run_modes( # 実行モード名 => 対応する関数 index => "do_index", search => "do_search", browse => "do_browse", ); } # インスタンス作成時に呼び出されるメソッド sub cgiapp_init { } # 各モードの処理前に自動的に呼び出されるメソッド sub cgiapp_prerun { } # 各モードの処理後に自動的に呼び出されるメソッド sub cgiapp_postrun { } # 各モードの処理内容を定義 # # トップレベルのブラウズノードと子ノードを表示 sub do_index { } # キーワードでの検索結果を表示 sub do_search { } # ブラウズノードの商品リストを表示 sub do_browse { } 1;