簡體   English   中英

PHP OOP-Php對象擴展了Mysql Object =多個Mysql連接?

[英]PHP OOP - Php objects extends Mysql Object = Multiple Mysql Connection?

我目前在使用自定義Mysql類將查詢發送到數據庫的購物車上工作。

在該項目上,我計划為我將使用的每個對象擴展此Mysql類:類別,產品,購物車。

如果我創建一個像這樣的類:

class Catalog_Categories extends Mysql{}

然后再這樣一個:

class Catalog_Products extends Mysql{}

這些類是使用相同的Mysql對象在數據庫上進行連接還是使用2個單獨的連接?

我有點迷路了。

謝謝!

卡爾

這取決於您的Mysql類的編寫方式。 如果使用Singleton模式編寫它,它將維護一個數據庫實例。 您可以將其編寫為Factory模式,並為使用它的每個對象生成一個新實例。 還有許多其他模式和可能性可用,因此所有這些都取決於您希望它如何工作以及如何編寫自定義Mysql類。

假設您正在Mysql類中創建數據庫連接,則任何擴展類創建的每個對象都將創建一個新的DB連接。

有幾種方法可以避免這種情況,例如,您可以創建一個到數據庫的全局連接,並將該連接傳遞給類的構造函數,以便它們都將使用同一連接。

這些類是使用相同的Mysql對象在數據庫上進行連接還是使用2個單獨的連接?

在看到完整的代碼之前,我們無法回答此問題。

但是在這種情況下擴展似乎是個壞主意。 如果您不能說class A is a class B -那么您應該更喜歡組合而不是繼承。 這意味着Catalog_Products應該具有對mysql對象的引用,但不應擴展它。

為了讓您有一個合理的理由繼承繼承是class mysql extends database 在這種情況下,您可以說“ mysql是數據庫”,因此,只要database類封裝了通用邏輯,並且mysql類代表更詳細的細節,此處的擴展看起來就很合理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM