fml8 チュートリアル (バージョン 7.99.1-20180910)
Prev | Chapter 34. 新プログラムの作成 | Next

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

内部構造の詳細は Chapter 42 を参照してください。

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] | 正確には、画面は３×３の合計９個のブロックからなりますが、 たいてい、そのうちの６つしか使っていません。
[2] | このため、多くの場合 FML::Process::Kernel のメソッドは CGI::Kernel でオーバロードされており、 直接呼ばれることは稀です。

Prev | Home | Next
新プログラムの作成 | Up | fml8 のメール配送システム

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.