例題: 新しいプログラムを作る ここでは、単純なスケジュール表示ソフトを例にとり、&fmldevel; のフレー ムワークの中で新しいプログラムを追加するにはどうすれば良いのかを説明し ます。 以下、プログラム名は fmlsch とし、その CGI 版が fmlsch.cgi です。 ケーススタディ: fmlsch を作る。 ステップ 1: インストーラに fmlsch を付け加える fml/etc/install.cf.in の bin_programs 変数に fmlsch を追加します。 fml/etc/install.cf を再生成するために configure を再実行してください。 ステップ 2: モジュールを作る fmlsch の実体のモジュールとして、 fml/lib/Calender/Lite.pm を書きます。 また、必要な他にライブラリがあれば適宜輸入してください。 今回は CPAN から HTML-CalendarMonthSimple-1.02.tar.gz を輸入します。 Date-Calc も必要なので適宜インストールしてください。 ステップ 3: FML::Process:: を修正 仕事のほとんどの部分は Calender::Lite が実行しますが、 &fmldevel; のブートローダから Calender::Lite を呼び出すために FML::Process:: クラスを修正する必要があります。 まず、fmlsch プロセスの初期化から実行といった大まかな一連の手順を fml/lib/FML/Process/Calender.pm に書きます。このファイルは新規に作成して下さい。 そして、ブートローダーへ fmlsch の場合は FML::Process::Calender を呼び 出せば良いことを教えるために etc/modules と etc/command_line_options に fmlsch のモジュール名との対応関係を追加します。 FML::Process::Calender は同じディレクトリのモジュールを適当にぱくって hack してください :-) なお、fmlsch は機能が最小なので、FML::Process::Calender では FML::Process::Calender::run() メソッドだけ用意すればおしまいです。 未定義の関数は FML::Process::Kernel のメソッドが使われます(継承)。 ケーススタディ: fmlsch.cgi 改造の仕方はモジュールが FML::CGI:: クラスになる以外は fmlsch の場合と 同様です。FML::CGI::Calender は FML::Process::CGI のサブクラスです。 未定義のものについては FML::Process::CGI や FML::Process::Kernel がよ きにはからいます。また、CGI.pm は FML::Process::CGI が使い、HTTP header を生成しています。あくまでも最低限の処理なので FML::CGI:: のモジュールで適宜 HTML の出力を補佐してあげます。