加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php DAL – 单独的实体和数据库?

发布时间:2020-05-25 09:07:15 所属栏目:PHP 来源:互联网
导读:我一直在研究和阅读很多关于在 PHP中使用单独的层来创建可维护和可读的代码. 但是,我看到很多代码将实体和数据库访问放在一个类中. 例如: class User{ public $id; public $username; public $database; function add(){ $database-query ....

我一直在研究和阅读很多关于在 PHP中使用单独的层来创建可维护和可读的代码.
但是,我看到很多代码将实体和数据库访问放在一个类中.
例如:

class User{
     public $id;
     public $username;
     public $database;

     function add(){
           $database->query ....
     }
}

我觉得这很奇怪,因为在这里你将User类与数据库元素混合在一起,这使得维护起来更加困难.

我喜欢这样工作:

>一个单独的数据库类
>用户类
>一个userData类

这样工作如下:

$database = new Database();
$database->openConnection();
$dataUser = new DataUser($db);
$user = new User(1,"myname");
$dataUser->saveUser($user);

所以我想知道,我是以正确的方式工作还是第一种创建代码的更好方法?
我发现可能很容易维护,因为你有一个单独的实体和一个单独的数据库类来处理数据库操作.

easy to maintain because you have a separate entity and a separate
database class

你似乎在说你希望从Active Record方法转向Data Mapper/Entity/Repository方法.这是一个很好的方向,因为它采用了更好的关注点分离.你可以自己构建这个,但你可能想看看像Doctrine这样的解决方案,它可以让你做一些基于以下的事情:

$product = new Product();
$product->setName($newProductName);
$entityManager->persist($product);

$product实体只是一个POPO(Plain Old PHP Object),它包含记录数据,并且不知道它是如何持久化的,并且当需要持久性时,它被传递到实体管理器来处理存储.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读