我打算从这里使用PHP PDO包装类:http://www.imavex.com/php-pdo-wrapper-class/
我用以下内容初始化了课程:
$db = new db("mysql:host=$sitedbHost;port=3306;dbname=$sitedbName", "$sitedbUser", "$sitedbPass");
问题是,我不喜欢在我的其他类上的每个函数上创建global $db
这样的想法:
class User
{
function getUserDomains($user_id)
{
global $db;
return $db->select("domains");
}
}
任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
如果你的课需要它才能工作,你可以在构造函数中注入:
class User {
public function __construct(Database $db) {
$this->db = $db;
}
}
然后,您可以从$this->db
访问数据库对象。 (注意,我假设$db
是Database
类的一个实例。请根据需要进行更改。
答案 1 :(得分:-1)
这是给你的东西:
答案 2 :(得分:-3)
我不喜欢在我的其他类上的每个函数上创建全局$ db的想法
好吧,只在构造函数中使其全局化(或将其作为参数传递),然后用作类变量,
return $this->db->select("domains");
老实说,你无法避免以某种方式将$ db传递给函数。没有魔力。无论你选择什么样的时尚方式,你最终都会以这种方式设置你的$ db变量,无论它叫什么,“依赖注入”,“全局”或“使用力量,卢克”。
我投票给global
,因为它简单明了。
顺便说一句,这个框架缺乏灵活性和不安全性。更好地使用safeMysql,因为它更安全,更灵活