我有點困惑:單身不好,全局最差。那麼在不同的類之間共享一個對象的最佳做法是什麼,例如PDO連接?我應該在哪裏存儲PDO連接?
我想要使用HTML模板類,ACL類和其他任何相同的數據庫連接。
我知道新的趨勢是使用DI,但哪種做法最好使全球同一PDO連接?也許使用註冊表?或者通過設置爲靜態var?編輯: 這種解決方案呢?
class Connection {
protected static $instance;
static function init(\PDO $connection) {
if(isset(self::$instance))
throw new \Exception('A connection to a database has already been set.');
self::$instance = $connection;
}
static function exec($query) {
return self::$instance->exec($query);
}
}
Connection::init(new PDO('blahblah'));
Connection::exec('SELECT * FROM users;');
我只是說實用。如果你想使用單身或靜態註冊表。這不像你會[受兇猛的速龍騎兵攻擊](http://xkcd.com/292/) – Phil
本月早些時候有關這個話題的一些很好的討論[在這裏](http://stackoverflow.com/問題/ 19848384/PHP-PDO實例-AS-私人靜態特性)。可能值得你的閱讀 – Phil
謝謝菲爾,我只是想進化:) 我要放棄單身人士,因爲我正在重寫一些代碼,我想以最好的方式做。 – user3047990