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

前端之家收集整理的这篇文章主要介绍了php DAL – 单独的实体和数据库?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在研究和阅读很多关于在 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),它包含记录数据,并且不知道它是如何持久化的,并且当需要持久性时,它被传递到实体管理器来处理存储.

猜你在找的PHP相关文章