我正在爲PHP預訂系統編寫一個小類。 我自己承認OOP根本就不是我的東西 - 但我想用它來做這個項目,假設我能夠收集足夠的理解來正確使用它。面向對象的PHP和數據庫包裝器
這裏有一些什麼我迄今(主要是僞):
class bookingSystemDbWrapper
{
public $db;
function __construct()
{
$this->db = mysqli_connect(..., ..., ..., ...);
}
}
class bookingSystemAvailabilityManager extends bookingSystemDbWrapper
{
function checkAvailability($date, $roomID)
{
/**
* check availability for a given room on a given date
*/
$query = mysqli_real_escape_string("SELECT SOMETHING FROM SOMEWHERE");
$result = mysqli_query($this->db, $query);
return $result;
}
}
這種方式工作得很好上方的小和簡單的類。但是當我需要一個創建預訂的類,根據位置等進行搜索時,爲每個類擴展數據庫包裝看起來是個壞主意。所以我需要另一種方法使我的數據庫包裝類可用於其他類,以便它們可以運行數據庫查詢。
我已經閱讀了關於nettuts的依賴注入:http://net.tutsplus.com/tutorials/php/dependency-injection-huh/但它超出了我對OOP的有限理解,所以我不確定要採取什麼方法或如何正確實現它。
TL; DR
我應該怎樣做一個類的公共瓦爾提供給其他類,而不會破壞OOP的任何原則,並保持我的代碼可讀性?
看到http://stackoverflow.com/questions/15323882/is-it-dependency-injection-and-is-it-a-bad-practise/15324725與詳細的解答 –
@catalin類似的問題.costache閱讀,現在它變得更有意義了。感謝您的鏈接 – jammypeach