php - 使用一些使用数据库连接的类

标签 php mysql oop class

假设我在一个论坛上工作,当然有 用户,以及添加评论、开放主题等的选项。

现在我需要一些功能, 例如:登录/注销;添加/编辑/删除评论;私有(private)消息..好的,你明白了。

因此,如果我使用 oop 来执行此操作,对于所有这些选项,仅使用一个巨大的类将非常笨拙,而且我认为效率较低, 所以最好为上面的每一个都上一个类。但问题是,如果我这样做,我需要在每个类中连接到数据库, 同时使用多个连接到同一个数据库将是一种资源浪费。那么,这个问题的最佳解决方案是什么? :-)

最佳答案

在 OOP 中,您只需创建对象。他们做他们应该做的事。

当我写作时,您只需创建对象,我的意思是字面上的意思。到目前为止还没有数据库,你还不关心这些对象是如何存储的。

编写您的单元测试,让对象按其应有的方式工作。

然后开始将这些对象放在一起。它们仍然不需要存储。只需将它们放在一起,例如:

$user = $session->getUser();
$user->login(username, password);

等等。您的应用程序应该不需要关心数据库。

然后,当您完成应用程序时,在每个操作中实例化对象的位置旁边,您还实例化了一个能够从数据存储中获取对象的 DataMapper

User <--> UserMapper <--> Datastore

如您所见,User 对象对 Datastore 一无所知,甚至对 UserMapper 也一无所知。 UserMapper 知道什么是 User,但正如上面所写,这是稍后出现的,所以首先让你的重要对象运行,为它们编写单元测试,然后是集成测试然后当你完成后,开始考虑数据库 - 无论那时它会是什么。

关于php - 使用一些使用数据库连接的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273157/

相关文章:

php - AJAX 间隔函数对服务器有害吗?

php - 在 PHP 中高效地缓存和分页大型 MySQL 结果集

php - Laravel 从员工表下的相关表中渲染下拉列表

php - PHPUnit 中的模拟 - 具有不同参数的同一方法的多个配置

java 到 MYSQL 日期时间格式

php - 使用 PHP 5 将 CSV 文件导入 MySQL 表

python - 覆盖内部函数

php - 使用自定义类名访问静态变量

javascript - 在 React 中追加一系列对象

mysql - 如何挑选价格高或低20%的产品?