我剛剛在PHP中使用類,我剛剛意識到,在我的大多數類方法中,我需要做一些mysql查詢。我有另一個類來處理我的連接和查詢,但我應該如何去從其他類調用該類?如果我的所有類都依賴於我的數據庫類,那麼這種類型是否會破壞使用類的目的?如何在其他類中運行數據庫類方法?
回答
這通常與辛格爾頓或者工廠模式解決了......
當你需要使用數據庫,你搶奪應用程序的數據庫對象:
$db = Site::getDb(); // singleton
$db->exec('update t set i = i + 1');
getDb返回一個靜態實例。
或:
$db = Db::getDb('dsn'); // factory
$db->exec('update t set i = i + 1');
如果它存在,或者爲該DSN新的DB手柄返回一個靜態實例...
+1,尼斯的答案,但你不是指'Db :: getDb()'而不是'Site :: getDb()'? – 2010-01-14 04:54:26
對不起,我仍然在學習這個東西,據我所知,一個單身人士是用於連接部分,如果連接已被調用/製作,那麼它使用該連接,否則它創建一個新的權利?所以我的主要問題是基於我到目前爲止,我有一個會話類爲我設置和獲取會話變量,而不是使用PHP的默認設置和獲取會話功能,我將它們包裝在一個類中,以便我可以更改在路上使用任何類型的緩存系統。我也有一個數據庫類,它將建立連接並具有查詢的方法。我 – JasonDavis 2010-01-14 18:52:31
看到它的方式是我需要訪問所有其他類中的數據庫和會話類,我只是想知道這是否正常?比方說,我決定建立一個不同的網站,如果我嘗試使用「論壇」類,它將無法正常工作,除非我也帶上我的數據庫和會話類。我認爲這是好的,但我是一個總是新手與類和類似的 – JasonDavis 2010-01-14 18:54:26
- 1. 運行其他類的主要方法
- 2. 在這個其他類中執行其他類的方法wpf
- 3. 如何在當前類中的其他類中使用方法
- 4. 如何在同一文件的其他類中使用其他類方法?
- 5. 如何調用方法在其他類其他類並將它傳遞給主
- 6. 在Scrapy類中定義其他方法
- 7. 如何確保靜態方法/屬性在其他類中的所有其他靜態屬性之前運行
- 8. 如何在其他類中調用類?
- 9. 使用其他類/方法的類
- 10. Android如何在其他類中運行OnUiThread?
- 11. JPA數據庫類方法
- 12. 如何在java的其他類中使用靜態方法
- 13. yuidoc - 如何在其他文件中定義類方法
- 14. 如何在其他類中使用方法?
- 15. 如何在其他類中調用另一個調用方法?
- 16. 如何在其他類中使用此方法?
- 17. 類模塊的其他方法在VBA
- 18. 在其他方法中調用類中的方法
- 19. 如何從Android類訪問其他類方法?
- 20. 如何手動運行django TestCase /針對其他數據庫?
- 21. 在另一個類方法中運行類方法
- 22. Java Mockito - 如何測試在同一個類中調用方法的方法以及其他類中的方法?
- 23. PHP:運行另一個類方法時運行類方法?
- 24. Dictionary.ElementAt方法在某些類中可見,但不是其他類。
- 25. C++ 11如何在其他類或源文件中引用類方法
- 26. c# - 如何在其他類的方法中從類的外部訪問變量?
- 27. Python:如何使用其他類型參數調用unbound方法?
- 28. 數據庫類與其他類的衝突
- 29. 如何在異步方法中使用不同類中的其他函數
- 30. Python - 使用類方法來裝飾其他類方法
一些示例代碼,將有助於說明你想要做什麼。 – Chris 2010-01-14 04:52:44