前述のように IO::Adapter の基本メソッドは次の通りです。
open() close() add(KEY, ARGV) (ARGV はクラス依存のデータ渡しのためにある引数) delete(KEY) find(KEY or REGEXP) get_next_key()
もちろん、オブジェクトを生成するのは new() ですので、 これら以外に new() だけは必要です:) 必要なら適宜、ディストラクタも定義して下さい。
オブジェクトを生成するのは new() です。 たとえば IO::Adapter であれば、
$obj = new IO::Adapter マップ;などとオブジェクトタイプを引数(マップ)で指定するため、 それに応じた初期化を行ないます。
ファイルであれば open(2)、RDBMS であれば SQL サーバへの接続を確立する といった具合です。
すなおに open() の逆です。
KEY (プライマリキー)もしくは、KEY および KEY に付随するデータをオブジェ クトに書き込みます。なお、ARGV はクラス依存のデータ渡しのためにある引 数で、この引数が使われないこともあります。
UNIX と異なり、オブジェクトの構造に一定の型があります。型とは RDBMS の ようなテーブルの形です。
また、プライマリキーとなるのは通常メールアドレスです。この前提が多くの 場面で正しいため、メールアドレスをプライマリキーにしたテーブル型が基本 的なデータ構造といえるわけです。
KEY および KEY に付随するデータ構造を削除します。
オブジェクト内からプライマリキーに該当するデータを探します。
探す対象を正規表現で指定できるように作る方が便利です。 正規表現検索が使えると、ユーザ検索などで重宝します。
返り値は STR か ARRAY_REF (KEY に対する [ VALUE, VALUE2, VALUE3 ])です。
プライマリキーの一覧を取り出したい場合が多々あります。 そこで
while ($obj->get_next_key()) { ... }のような表現を可能とするために、このメソッドが実装されています。
これはハッシュの FIRST_KEY() と NEXT_KEY() にあたるといえます。 しかしながら、我々の場合は open() などのメソッドが別途用意されているため、 FIRST_KEY() と NEXT_KEY() のように2つに分ける必要はありません。
XXX すなおに、key() もしくは get_key() でも良い気がする?
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>.