Php 如何创建多态不可知模型?

Php 如何创建多态不可知模型?,php,design-patterns,symfony,doctrine,Php,Design Patterns,Symfony,Doctrine,目前,我在项目中使用存储不可知模式。这个模式非常简单:我有我的Model\Model和扩展Model\Model的特定存储层(比如Entity\Model和Document\Model) 我面临的问题是多态对象。如果我不扩展实体理论,它就不会识别继承映射。这样,我需要为每个存储层复制代码: class Model\Option {} class Model\OptionNumber extends Option {} class Entity\Model extends Model\Option

目前,我在项目中使用存储不可知模式。这个模式非常简单:我有我的
Model\Model
和扩展
Model\Model
的特定存储层(比如
Entity\Model
Document\Model

我面临的问题是多态对象。如果我不扩展实体理论,它就不会识别继承映射。这样,我需要为每个存储层复制代码:

class Model\Option {}
class Model\OptionNumber extends Option {}
class Entity\Model extends Model\Option {}
我希望:

class Entity\OptionNumber extends Model\OptionNumber{}
但这是不可能的。一旦PHP不支持多重继承,我就必须在Entity\OptionNumber中编写代码

有解决这个问题的模式吗

仅供参考,我使用的是Doctrine 2.2和Symfony 2.3

当然

型号:

abstract class Option implements OptionInterface
{
/**
 * @var int
 */
protected $id;

/**
 * @var string
 */
protected $name;

/**
 * @var string
 */
   protected $presentation;

   /**
   * @var Collection of OptionChoiceInterface
   */
   protected $choices;
}
实体:

class Option extends BaseOption
{
}
文件:

class Option extends BaseOption
{
}

你能展示一个模型和一个实体或文档吗?我已经添加了真实的例子。做一些接近你想要做的事情。他们使用自己的模型来保持对象存储独立(因此您可以使用条令或条令Mongo)。然而,它们并不真正具有多态性行为。我认为你找不到一个好办法来完成这件事。你必须与教义相结合。看看这个文件,它可能对你有帮助