PHP框架中的MVC架构:是否有必要使用DAO或Repository模式?

在我的新工作中,他们使用(不要问我为什么)基于MVC架构的自定义框架 。 我自己,我有很多Symfony2的经验,有点像MVC框架。 该框架不对数据持久层使用任何抽象。 所以典型的模型类是这样的:</ p>

 类用户扩展模型{
protected $ iduser;
protected $ email;
protected $ password;
/ /一些getter,setter here

public static getAllUsers(){
//在这里选择查询
返回$ all_users;
}
</ code> </ pre>

现在我认为这个模型正在使用对象关系映射(ORM),对吗? 问题是它不使用任何最流行的模式,如Repository模式或DAO来与数据库进行通信,并且所有CRUD操作都必须在每个模型中实现。 我的问题是,如果这个逻辑是正确的,或者不能在模型和数据库之间使用任何抽象层以及为什么不可接受。</ p>
</ div>

展开原文

原文

In my new job, they use (don't ask me why) a custom framework that is based on MVC architecture. Myself, I have a lot of experience with Symfony2 that is kinda an MVC framework. This framework does not use any abstraction for the data persistence layer. So a typical model class would be like this:

class User extends Model {
    protected $iduser;
    protected $email;
    protected $password;
    // some getters, setters here

    public static getAllUsers(){
        // a select query here
        return $all_users;
    }

Now I think this model is using Object Relational Mapping (ORM), am I right? The problem is that it does not use any of the most popular patterns like Repository pattern or DAO for the communication with the database and all CRUD operations have to be implemented in each model. My question is if this logic is ok or it is not acceptable not to use any abstraction layer between the Model and the Database and why.

doutou7549
doutou7549 我之前写了一篇关于模型臃肿的帖子,也许看看它,让我知道这是否有助于回答你的一些问题:stackoverflow.com/a/34718408/3358181。基本上它是关于分离逻辑,状态和其他责任,以确保您的每个类/层不承担太多责任。
大约 4 年之前 回复
doureng5668
doureng5668 你为什么要避免抽象?不抽象会产生非常混乱的代码......非常混乱
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐