内部構造の詳細は the Chapter called CGI プロセスの内部構造 を参照してください。
CGI のプログラム本体は FML::CGI::○○○ というクラスのモジュールです。 CGI 系列では次のような、オブジェクトの関係があります。
FML::Process::Kernel | A FML::Process::CGI::Kernel uses-a CGI | A FML::Process::CGI | A FML::CGI::○○○
CGI のプログラムの書き方もコマンドラインプログラムと同様です。 名前空間で区別するために CGI スクリプトのモジュールは FML::Process ではなく FML::CGI 以下に配置されています。 既存の FML::CGI のモジュールを見本にして、 FML::CGI::○○○ を適宜用意して下さい。
FML::CGI::○○○ の注意点は、 用意するメソッドが
html_start() html_end()および
run_cgi_main() run_cgi_title() run_cgi_navigator() run_cgi_menu() run_cgi_command_help() run_cgi_options()になるという点です。 これらの組で一つの画面 [1] が構成されています。
これらは FML::Process::CGI の中の verify_request() および run() から呼ばれた先のメソッドとなっています。
CGI プロセスは FML::Process::CGI で駆動され、run() メソッドは
$curproc->html_start($args); 画面を作るために run_cgi_xxx() メソッド群を呼び出す。 $curproc->html_end($args);の順に FML::CGI:: 以下のメソッド群を呼び出しています。
ちなみに、2001/11 現在、FML::Process::CGI::Kernel プロセス自身は、 以下のメソッド [2] からなっています。
new() prepare() verify_request() run() finish()特に、これらを編集する必要はないでしょう。 ちなみに FML::CGI:: は run() から呼ばれています。
[1] | 正確には、画面は3×3の合計9個のブロックからなりますが、 たいてい、そのうちの6つしか使っていません。 |
[2] | このため、多くの場合 FML::Process::Kernel のメソッドは CGI::Kernel でオーバロードされており、 直接呼ばれることは稀です。 |
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >