我应该为执行特定SQL函数的函数创建一个类吗?

时间:2015-10-21 21:04:12

标签: php database model-view-controller

我有一个非常简单的PHP应用程序:它允许用户创建,编辑和阅读帖子。基本的东西。

我有一个Database类来处理连接和查询执行。问题是我希望我的模型(我使用自建的MVC框架)是干净的,所以我在Database中创建了一些函数,例如CreatePost()EditPost()等,它包含所需的所有SQL,因此我可以很好地从模型中调用它们:$database->CreatePost(/* post data */);

我应该将这些功能保留在Database课程中,还是应该将它们放在其他地方(比方说,一堂课)?也许我甚至应该放弃函数的想法并在模型中明确地编写代码?

修改

作为@Tanuel Mategi mentioned,答案可能基于意见,但仍然 - 我试图弄清楚大多数人会根据公认的现代公约做什么,特别是Single Responsibility Principle。那么,这是否是一种责任?

1 个答案:

答案 0 :(得分:1)

您可以使用DataMapper(http://martinfowler.com/eaaCatalog/dataMapper.html)。它是实体和数据库之间的一个层。在此课程PostMapper上,您有方法__construct(\PDO $pdo)create($post)delete($post)save($post)update($post)。所有方法都获得将保存在数据库中的Post对象。在每个方法上,您都要处理数据库。

要准备和执行数据库查询,您可以使用PDO。您不必使用自己的实现。

希望它有助于新想法。