我已经为这个问题苦苦挣扎了好几个小时。如何将我的 Mysql 调用与我的 PHP 代码分开。我使用 PDO 为 Mysql 查询构建了一个社交网络,但 SQL 在每个类中。例如,我有一个类Users
和一个方法是获取所有用户
public function fetchUsers() {
$Database = new Database();
$Database->setConnection();
$dbh = $Database->connect()->getHandle();
$sql = '<query>';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if($result) {
return array('success' => true,
'data' => $result);
}
return array('success' => false,
'data' => null);
}
然后我在该类中有另外 10 个方法来实例化数据库类并查询结果。我讨厌那个。我认为我的类应该操作数据或执行其他功能,它只是变得混乱。我查看了 PDO 包装类,但我仍然想将 Mysql 从类中分离出来。我能看到的唯一途径是将它们放入存储库中。所以我可以
class Users {
getUsers() {
$repo = new UserRepository();
$repo->findAll();
}
}
但是,这感觉没有必要,因为现在我正在实例化 2 个类,而我可以坚持使用进行调用的原始单个类,为什么要创建 2 个对象?我知道它的可读性,但是有人对如何将 Mysql 与我的类完全分开有其他建议吗?