我有一个PHP项目,很多类,而我从网上一个PDO包装类,好像还不错:PHP - 传递DB连接各种类
http://code.google.com/p/php-pdo-wrapper-class/
我看班像现在这样:
class product {
__constructor($id = 0) {
//mysql_query and store the product row in $this->row;
}
edit($array) {
//another obvious mysql_query...
}
所以他们非常简单,我想将所有的mysql_query移动到PDO的安全性。我已经得到了变量:
$db = new pdo('localhost', 'user', 'pass');
在我的上线工作正常包含文件中定义的类之前。但是,我不想写:
global $db;
在每个函数的开始。我考虑改变__construct()函数来更多的东西,如:
__construct($id = 0, $db = null) {
$this->db = $db;
}
然后从那里引用,但这个问题是,然后我不得不改变每一个构造在我的整个网站。有没有办法解决这个问题,我可以做最少量的编辑已经存在的代码?
这不是比全局变量更好 – zerkms 2012-08-05 12:41:55
它在,你就不必说'每个函数的内部全局$ db'感更好,这只是“全局”在BaseModel及其后代而不是在任何地方。 – 2012-08-05 12:44:34
这看起来更好,因为我只需要制作一个小型的“BaseModel”类,然后在十个类文件的末尾键入“extends BaseModel”,这将使我在更改所有数据库调用时实质上向后兼容。 谢谢! – 2012-08-05 13:45:15