我現在有一個使用辛格爾頓,像這樣一個數據庫包裝靜態方法:從一個Singleton切換到依賴注入,並呼籲,需要一個數據庫連接
class Database {
private static $db;
public static function getInstance() {
if(!self::$db) {
self::$db = new PDO();
}
return self::$db;
}
}
我也有,有一個User類一些方法,我想靜態調用,但他們需要一個數據庫連接,我正在做像這樣:
class User {
private static $db;
public function __construct() {
self::$db = Database::getInstance();
}
public static function someMethod() {
self::$db->someQuery();
}
}
User::someMethod();
我的問題是,我將如何完成使用依賴注入,而不是辛格爾頓同樣的事情,沒有進行多個數據庫連接?
什麼依賴注入庫您使用?在Zend Framework中,默認情況下你會得到相同的實例。否則,你必須編寫'$ di-> newInstance('My \ B');'。看看[這裏](http://zf2.readthedocs.org/en/latest/modules/zend.di.quick-start.html) – bitWorking