我正在为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