2016-10-11 63 views
1

我通常將PDO對象存儲爲成員。但是,在實踐依賴注入過程中,我有一個問題,我無法決定處理數據庫連接的優雅方式。有沒有正確的方法來處理類中的數據庫連接?

!!我所做的。 在每個實例化類中,我總是將PDO對象傳遞給構造函數。構造函數存儲給定PDO對象的引用。

class Examples 
{ 
    /* Properties */ 
    public $db; 

    /* Constructor */ 
    public function __construct(PDO &pdo) 
    { 
     $this->db = $pdo; 
    } 

    //.. 
} 

它運作良好,即使我不明原因。我困擾了一些bzar的疑問,Am I doing right?

主要問題是,我怎麼能給某些類的數據庫連接?擴展PDO?傳遞PDO對象作爲參數?或者讓另一個類擴展PDO並實現兩者? .. ??? ??? ???????????? ; OTL

回答

1

您不需要使用&符傳遞$ pdo作爲參考,因爲在PHP中,對象通過引用默認傳遞。 你的例子很好。 永遠不要用PDO擴展你的實體/模型類,除非做一個專門的PDO版本。 如果你有很多使用$ pdo和其他服務(如會話,文件系統,API等)的類,那麼你可以考慮創建一個服務管理器(容器),然後調用它來獲得可重用對象,比如你的$ PDO。 如果你將來會用別的東西代替PDO,你不需要重寫所有將它作爲參數的類。

相關問題