【发布时间】:2015-10-14 14:01:14
【问题描述】:
我想在领域驱动设计方法中使用 Doctrine 进行数据持久性。但困扰我的是关联映射应该在实体内部。就纯 DDD 而言,这不是一个不好的做法吗?因为在我解决持久性问题之前,我的域实体非常干净,现在它们的属性中有很多 cmets。像这样:
<?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;
...
除了使用这些 cmets,我还必须拥有 use Doctrine\ORM\Mapping as ORM;。这样一来,基础架构就不会与域分开。
有没有办法将此映射移动到配置文件?我正在使用 ZF2。
【问题讨论】:
-
Doctrine 2 支持 yaml 以及 xml 映射。只需在 ZF2 文档中搜索如何在其框架中执行此操作。我使用的是 Symfony 2,所以我不能给你具体的信息,但我相信它可以做到。
-
这成功了!感谢您的回答。我对 Zend 使用了这种方法:kerstner.at/en/2014/04/…
标签: php zend-framework2 doctrine domain-driven-design