2

我有一个活动的 mysql 对象,其中包含我的连接等。$db->query(我的查询)。我想将此对象传递给一个新类,因此我不必再次创建该对象

我将如何将它传递到新课程中以便它仍然有效?

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

}

想法?

4

1 回答 1

0

你的例子对我来说似乎有效。它是 Martin Fowler确定的三种依赖注入类型之一:

  • 构造函数
  • 二传手
  • 界面

例如,如果您想使用 setter 注入而不是构造函数注入,请在您的类上创建一个 setter 方法以接受数据库参数。也可能值得将该属性设为私有,以防止其他代码使用对象NewClass作为数据库对象的提供者。

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