【问题标题】:Models and Data Access Objects, which should be passed and what should be passed模型和数据访问对象,应该传递什么,应该传递什么
【发布时间】:2013-07-26 03:22:41
【问题描述】:

我试图让我的模型不知道 sql 代码和连接,所以我试图实现一个所谓的“数据访问对象”/“dao”。

我的模型代表数据库中的表,它的属性是像这样的 db 字段,例如 loginModel

class LoginModel {

   private $user;
   private $pass;
   private $salt;
   private $ip;
   private $agent;

   // getters and setters e.g.
   public function getUser() {
       return $this->user;
   }
   public function setUser($user) {
       $this->user = $user;
   }
   // or for example magic methods -> just for example

   public function __get($key) {
       return $this->$key;
   }

   public function __set($key, $value) {
       $this->$key = $value;
   }

}

在我的开发中,我认为我做错了,在我看来或在我的控制器中,我正在这样做:

$loginModel = new LoginModel();
$loginModel->setUser('$_POST["user"]');
$loginDAO = new LoginDAO($loginModel);
echo $loginDAO->getResults();

这是正确的方法吗?或者我应该先在DAO中读取POST变量的过程,然后设置模型的属性?

【问题讨论】:

    标签: php model-view-controller model data-access-layer


    【解决方案1】:

    如果您想进一步将其抽象为涉及多种存储类型的不同场景,您可能需要查看Factory Pattern

    编辑:再次查看您的问题,意识到您不需要答案的一半,但这是我删除的内容:


    您设计模型的方式可能会让事情变得有些混乱。尝试将模型设计为对象而不是过程。

    登录过程将由控制器处理,而模型将负责从数据库中获取内容。这意味着您可以使用控制器内部的模型来完成任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2021-01-30
      • 2019-09-26
      • 2011-09-03
      相关资源
      最近更新 更多