我正在尝试拥有一个可归档的特征,该特征将为实体提供基于下面提到的文件实体的 CRUD 文件方法。
在阅读了有关 Doctrine 的文档并搜索互联网后,我能找到的最好的是继承映射,但这些都需要子类来扩展超类,这并不理想,因为当前的实体已经扩展了其他类。我可以FileFoo
实体和一个FileBar
实体,但这太混乱了,需要额外的连接(super
-> sub
-> entity
)。
或者,我可以有一个文件实体,其中包含许多实体列(因此foo_id
用于Foo
对象,bar_id
用于bar
对象等),但这变得混乱并且需要为每个实体创建一个新列我也想添加可归档特征。
所以对于问题:我是否在考虑如何错误地保存数据?Doctrine/Symfony中是否有一些我错过的特性/功能?你认为如果我分叉教义来添加这个功能,我会添加这样的功能吗,我应该在哪里看?
<?php
/**
* File
*
* @ORMTable()
* @ORMEntity()
* @ORMHasLifecycleCallbacks()
*/
class File
{
/**
* @var integer
*
* @ORMColumn(type="integer")
* @ORMId()
* @ORMGeneratedValue()
*/
protected $id;
/**
* @var string
*
* @ORMColumn(type="string")
*/
protected $entityName;
/**
* @var string
*
* @ORMColumn(type="string")
*/
protected $entityId;
...
我使用特征中定义的继承完成了类似的事情,它与接口一起,基本上给了我多重扩展所能提供的东西。
看看可嵌入的,或者你可以使用特征。