Moony_DB

Moony_DBは同梱し続けることに決定。

  • PEAR::DBのラッパークラス
  • queryメソッドで検索が可能、結果は連想配列の配列
  • executeメソッドで更新が可能、結果は影響を与えたレコード件数

勿論、これもインジェクションすることが可能。

[Injections]
db=Moony_DB

上記のように設定ファイルに記述しておけば、$dbという変数にMoony_DBのインスタンスがインジェクションされる。

class Foo
{
    var $db;   // Moony_DBのインスタンス
    function execute()
    {
        $this->db->connect('pgsql://user:pass@host/db');
        $this->db->disconnect();
    }
}

Moony_DBの内部ではコンストラクタが実行された段階でPEAR::DBがincludeされるので、Moony_DBを使用しない場合はPEAR::DBが動作環境に存在しなくてもエラーにはならない。