3

次の点についてフィードバックを求めています。

現在、PHP アプリケーションで使用されている 2 つのクラスがあります。

MySQL現在使用している(ただし に切り替えている)データベース接続クラスPDO

データベース機能を必要とする別のクラス (いくつかの関数を持つ)。

私はこれを設計するための最良の方法を探しています。私はシングルトン (非常に複雑なレビュー) を読み、オブジェクトがnew各メソッド (クラス関数) として単純に宣言された例を読み、接続が割り当てられた例を読みました__constructor各クラスのメソッドの一部としてのプライベート変数(次に で参照$this->)。

では、他の人はどのようにしていますか?おそらく例を挙げていただけると幸いです。また、他の人が読んだものについての意見も歓迎します.

2 つの別々のファイルに、2 つの別々のクラスがあります。クリーンなコードを維持し、DB の不要なオーバーヘッドを削減し、時代遅れと見なされる可能性のあるもの (グローバルなど) を回避したいと考えています。

4

2 に答える 2

2

Database接続を担当するクラスは、データベースに接続し、新しい PDO インスタンスを作成し、それをフィールド自体に保存するクラスでなければなりません。

class Database {
    private $pdo;
    public __construct() {
        $this->pdo = new PDO(...);
    }
}

2 番目のクラスは、DB 接続がどこからのものかを気にせず、機能するために必要なだけで、クラスに注入するDatabase必要があります。

class WorkerClass {
    private $db;
    public __construct(Database $db) {
        $this->db = $db;
    }
}
于 2012-07-16T16:03:41.710 に答える
1

私はいつもそれを で作成し、__constructorそれ$this->を取得していました。これはあなたのニーズに合うはずですが、さまざまなスタイルを試してみて、どれが最も効果的かを確認することをお勧めします.

new非常に正当な理由がない限り、毎回新しいオブジェクトを作成することはありません。

于 2012-07-16T16:03:27.837 に答える