no-image

プロジェクトを作った後に追加するコードその1

ActionClassからはデータベースオブジェクトを呼ぶ事が多いのですが、各アクションの中で、いちいちBackendからgetDBするのは面倒なので基底クラスのコンストラクタの中で、DBのインスタンスをActionClassのメンバ変数にします。

こんな感じで。


class APPID_ActionClass extends Ethna_ActionClass
{
    var $db;
    function APPID_ActionClass(&$backend)
    {   
        $result = parent::Ethna_ActionClass($backend);
        $this->db = $this->backend->getDB();
        return $result;
    }
}

こうしておけば、必要な時に$this->db->autoExecute(“table”, $this->af->getArray(), 'INSERT');みたいな感じで一発でDBの処理が呼び出せます。

DBまわりのロジックは、getDBで取得できるDBクラスに直接書いていくと、アクション間の共有も簡単に。

ああ。Ethnaの話ですよ。