2

フレームワーク、MVC、OOP全般については比較的新しい...基本的な質問は次のとおりです。

次のようなアカウント モデルがある場合:

class Account_Model extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
        $this->sybase = $this->load->database( 'sybase', TRUE );
    }
}

次に、コントローラーはAccount モデルから拡張された2 つのモデルを呼び出します。

class Account_List_Model extends Account_Model
{
    public function __construct()
    {
        parent::__construct();
        $sql = "SELECT ....";
        return $this->sybase->query( $sql )->result();
    }
}

class Account_Details_Model extends Account_Model
{
    public function __construct()
    {
        parent::__construct();
        $sql = "SELECT ....";
        return $this->sybase->query( $sql )->result();
    }
}

私の質問は、両方が同じ接続を使用するかどうかです。同じ接続を使用するためにこのように計画していましたが、親が2回構築されるため、2つの別々の接続を使用することを考えています。多分私はこれを考えすぎています。多分私はこれを過小評価しています。そうでない場合、シングルトンが唯一の答えですか、それとも他の方法がありますか? ありがとう

4

1 に答える 1

0

CodeIgniter は、Database クラスをロードするときに接続を開くため、使用中の接続は 1 つだけです (2 つ以上のデータベースに接続しない限り)。

モデルに複数のメソッドを含めることも問題ありません。私は通常、特定のデータベース テーブルに関連付けられた 1 つのモデルを使用します (密接に関連するテーブルとの結合を使用する場合は複数の場合もあります)。

続けて良かったと思います。

于 2013-03-12T16:51:04.457 に答える