2

私は何年もの間、主に手続き型プログラミングを行ってきましたが、OOP と PDO に頭を悩ませようとしています。スタンドアロン関数の代わりにクラスを使用するように作成したアプリケーションの変換を開始しました (これは悪夢ですが、それだけの価値があると思います..)。通常のmysql_*関数の代わりに PDO を使用したいと考えています。私はズボンの席で飛んでいるようなもので、進むにつれて学習しているだけで、PDO オブジェクトをどのように処理すればよいかわかりません。

クエリを作成する必要があるたびに新しい PDO オブジェクトを作成するのはばかげていることはわかっているので、次の 2 つの方法があります。

  1. 各クラスで PDO オブジェクトを作成します (つまり、オブジェクトが作成されるたびに、メンバー関数を呼び出して、使用する PDO を作成します)。
  2. アプリケーションの最初に PDO オブジェクトを作成し、作成されるすべてのオブジェクトのコンストラクターに渡します。すべてのオブジェクトが PDO オブジェクトを共有します。

これを行う最善の方法は何ですか?

アドバイスありがとうございます!

4

2 に答える 2

2

複数作成しないでください。すべての DB 接続を管理しようとすると、夢中になるでしょう。

良い解決策の 1 つは、データ アクセス用のシングルトン オブジェクトを作成し、DB を使用するときはいつでもその静的アクセサ メソッドを介して取得することです。そうすれば、DB アクセスと PDO を管理する場所が 1 つだけになります。もう少しMVCになりたい場合は、すべての SQL コードをそこに入れることもできます。

于 2012-07-06T15:40:02.947 に答える
1

アプリケーションのサイズによっては、Singletonを使用してデータベース接続を処理することをお勧めします。基本的に、これはデータベース接続をラップし、PDO オブジェクトを返す静的関数を持つクラスになります。ただし、これはシングルトンであるため、作成されるのは 1 つだけです (より洗練されたものにしないと仮定します)。これにより、オブジェクトを継続的に作成する必要がなくなり、1 つのオブジェクトをすべてのオブジェクトに渡す必要がなくなり、永続性がビジネス ロジックから適切に分離されます。

于 2012-07-06T15:41:08.330 に答える