例題: 新しいプログラムを作る
ここでは、単純なスケジュール表示ソフトを例にとり、&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 の出力を補佐してあげます。