2

接続などを含むアクティブな mysql オブジェクトがあります.. $db->query(my query)。このオブジェクトを新しいクラスに渡したいので、オブジェクトを再度作成する必要はありません

それを新しいクラスに渡して、まだアクティブにするにはどうすればよいですか?

class NewClass {
  var $db;
  function __construct($db) {
   $this->db=$db;
 }

}

考え?

4

1 に答える 1

0

あなたの例は私には有効に思えます。これは、Martin Fowlerが特定した 3 種類の依存性注入の 1 つです。

  • コンストラクタ
  • セッター
  • インターフェース

たとえば、コンストラクター インジェクションの代わりにセッター インジェクションを使用する場合は、データベース パラメーターを受け入れるセッター メソッドをクラスに作成します。NewClass他のコードが のオブジェクトをデータベース オブジェクトのプロバイダーとして使用するのを防ぐために、プロパティをプライベートにすることも価値があるかもしれません。

class NewClass {
  private $db;
  public function setDb($db) {
    $this->db=$db;
  }
}
于 2012-12-07T20:39:06.050 に答える