DB_DataObject を使ってみたい。

以前から雑誌で読んで気になっていた PEAR の DB_DataObject を使ってみたいと思います。本当に便利なのか確認してみて、便利だったら採用してみようかと思います。


まずはインストールです。PEARで配布されているので、インストールはとても簡単です。

# pear install DB_DataObject

とするだけです。これで、インストールは終了です。インストールの簡単さもPEARが利用される理由のひとつなのかもしれませんね。


インストールして、クラスを require するだけで使えるのが一般的ですが、 DB_DataObject はデーターベースの構造を解析して自動でクラスを作るようなので、事前にデーターベースへの接続情報を教えておく必要があるようです。
このページを参考にしながら、設定ファイルを書きました。
サンプルの database schema_location schema_location を変更しました。オプションの設定はイロイロできるようですが、とりあえず最小限の設定で動作確認してみます。

設定ファイル(dataObject.ini)

[DB_DataObject]
database    = mysql://USER:PASS@localhost/DBNAME
schema_location = /home/USER/path_to/class/db
class_location  = /home/USER/path_to/class/db
require_prefix  = DataObjects/
class_prefix    = DataObjects_
debug=0

この設定ファイルを、自動生成スクリプト (createTables.php)の引数に指定します。

$ php /usr/share/pear/DB/DataObject/createTables.php ./dataObject.ini

指定されたディレクトリ(class_location)にファイルが作成されているかを確認します。私は tm_heya というテーブルを作っておきましたので、 Tm_heya.php というファイルが作られているのを確認しました。


準備はOKなので、動作確認用のプログラムを書いてみます。

動作確認用のプログラム

require_once 'DB/DataObject.php';

// 準備
$config=parse_ini_file('/home/useer/path_to/dataObject.ini',TRUE);
$options=&PEAR::getStaticProperty("DB_DataObject","options");
$options=$config['DB_DataObject'];

// 簡単な検索 部屋IDが 1 のデータを取得
$rooms = DB_DataObject::Factory('tm_heya');
$rooms->get(1);

// 表示して確認
print_r($rooms);

次は部屋クラスで DataObject を利用してデーターをとってくるようにしたいと思います。