[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

プログラムを作る( CGI 用)

内部構造の詳細は 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() から呼ばれています。

Notes

[1]

正確には、画面は3×3の合計9個のブロックからなりますが、 たいてい、そのうちの6つしか使っていません。

[2]

このため、多くの場合 FML::Process::Kernel のメソッドは CGI::Kernel でオーバロードされており、 直接呼ばれることは稀です。

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >