CGI プロセスの内部構造 メソッド FML::CGI のクラスは以下の3つのメソッドを実装して下さい。 html_start() run_cgi() html_end() ここで html_start() は、 ようするに HTML の先頭部分、たとえば DOCTYPE から BODY あたりを、 html_end() は /BODY と /HTML を表示する部分をカスタマイズするために用います。 run_cgi() メソッドでは BODY の部分を表示してください。 $curproc の run() メソッドは html_start() run_cgi() html_end() を順番に実行しています。 つまり CGI プロセスの実行のフロー( FML::Process::Flow 参照)は new() prepare() verify_request() run() html_start() run_cgi() html_end() finish() ということになります。 画面の作りとメソッド 典型的な画面は次のように分割されると考えて良いでしょう。 ヘッダ バー1 メニュー バー2 フッタ なお、バー1と2の部分は navigation などと呼ばれます。 ヘッダ部分( HTTP ヘッダではなく、HTML の DOCTYPE から BODY あたり) やフッタの部分は html_start() および html_end() で HTML コードを生成するでしょう。 BODY の中身は バー1 メニュー バー2 の部分で、run_cgi() によって生成します。 TODO: run_cgi() の中身をもっと細かくすることと、 画面上のどの部分をどのメソッドが記述するのかを指定できる アクセスメソッドが必要です。 また BODY の中身も、これにあわせて、より細かく nw north ne west center east sw south se くらいの精度がないといけないかも知れません。 画面とトランポリン機構 CGI の表示部分は FML::Command:: 以下のクラスに移動させます。 しかしながら、 FML::Command:: の中に実体があるとは限らず object composition の形式で FML::CGI:: クラスが提供するメニュー生成クラスを 使うことになるでしょう。 たとえば subscribe の場合 FML::CGI::Admin::Main → FML::Command::Admin::subscribe → FML::CGI::Admin::Menu → メニューの表示 などとなるでしょう。 このように Mach のトランポリン機構のように、いったりきたりします。