我正在为 PHP 中的预订系统编写一个小班。我自己承认,OOP 根本不是我的事——但我想在这个项目中使用它,假设我能收集到足够的理解来正确使用它。
这是我到目前为止所拥有的一些东西(大部分是伪的):
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;博士
我应该如何在不违反任何 OOP 原则的情况下使一个类的公共变量可供其他类使用,并保持我的代码可读?