我想在领域驱动设计方法中使用 Doctrine 进行数据持久化。但困扰我的是关联映射应该在实体内部。就纯 DDD 而言,这不是一种不好的做法吗?因为在我进入持久性问题之前,我的域实体非常干净,现在它们的属性中有很多注释。像这样:
<?php
namespace Domain\Model;
use Doctrine\ORM\Mapping as ORM;
/**
* User
*
* @ORM\Table(name="user")
* @ORM\Entity
*/
class User
{
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="SEQUENCE")
* @ORM\SequenceGenerator(sequenceName="user_id_seq", allocationSize=1, initialValue=1)
* @ORM\Column(type="integer")
*/
private $id;
...
除了使用这些评论,我还必须拥有
use Doctrine\ORM\Mapping as ORM;
.这样,基础设施就不会与域保持分离。有没有办法将此映射移动到配置文件?我正在使用 ZF2。
最佳答案
是的,从 DDD 的角度来看,这很糟糕。有两种解决方案:
关于php - 实体内部的 DDD 和 Doctrine 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33127460/