use MT::PluginData;
my $data = MT::PluginData->new;
$data->plugin('my-plugin');
$data->key('unique-key');
$data->data($big_data_structure);
$data->save or die $data->errstr;
## ... later ...
my $data = MT::PluginData->load({ plugin => 'my-plugin',
key=> 'unique-key' });
my $big_data_structure = $data->data;
MT::PluginDataはMovable Typeプラグインでデータを格納するためのメカニズムです。Berkeley DB、MySQLといった、Movable Type内の他の部分と同じバックエンド・データソースが用いられます。プラグイン内でこのクラスを用いることにより、任意のデータ構造をデータベースに格納することができます。これらのデータは、プラグイン固有の文字列とキーを指定することにより、巨大なハッシュ配列のような形で操作することができます。データ構造はStorableでシリアライズされます。
MT::PluginDataはMT::Objectのサブクラスであり、データ管理/保存メソッドを親クラスであるMT::Objectから継承します。このため、新規オブジェクトの生成、既存オブジェクトの読み込み、オブジェクトの保存等の詳細に関しては、MT::Objectのドキュメントを参照してください。
MT::PluginDataオブジェクトは、以下のデータを保持します。これらのフィールドは、MT::Objectドキュメントで説明する標準的なデータアクセス用メソッドを用いて参照/設定することができます。
数値型のレコードIDです。
プラグイン識別のための一意な名前(文字列)です。
ハッシュ配列のキーと同様のキー(文字列)です。pluginフィールドとの組み合わせで、レコードを特定します。
保存するデータ構造です。このフィールドに値を設定する際に受け渡す値は参照でなければなりません。たとえば、
$data->data('string');
のような呼び出しを行うとエラーとなって終了します。
$data->data(\'string');
のように呼び出す必要があります。
数値IDによる検索の他、以下のフィールドの任意の組み合わせでレコードの検索/ソートを行うことができます。詳細はMT::Objectのloadのドキュメントを参照してください。