接続などを含むアクティブな mysql オブジェクトがあります.. $db->query(my query)。このオブジェクトを新しいクラスに渡したいので、オブジェクトを再度作成する必要はありません
それを新しいクラスに渡して、まだアクティブにするにはどうすればよいですか?
class NewClass {
var $db;
function __construct($db) {
$this->db=$db;
}
}
考え?
接続などを含むアクティブな mysql オブジェクトがあります.. $db->query(my query)。このオブジェクトを新しいクラスに渡したいので、オブジェクトを再度作成する必要はありません
それを新しいクラスに渡して、まだアクティブにするにはどうすればよいですか?
class NewClass {
var $db;
function __construct($db) {
$this->db=$db;
}
}
考え?
あなたの例は私には有効に思えます。これは、Martin Fowlerが特定した 3 種類の依存性注入の 1 つです。
たとえば、コンストラクター インジェクションの代わりにセッター インジェクションを使用する場合は、データベース パラメーターを受け入れるセッター メソッドをクラスに作成します。NewClass
他のコードが のオブジェクトをデータベース オブジェクトのプロバイダーとして使用するのを防ぐために、プロパティをプライベートにすることも価値があるかもしれません。
class NewClass {
private $db;
public function setDb($db) {
$this->db=$db;
}
}