Доктрина: расширение класса сущностей

Я хотел бы расширить классы Entity \ Base, как это сделать в Doctrine 2.1? Мои исследования показали, что всякий раз, когда кто-то сталкивается с проблемой с этим, он переключается на Doctrine 1.2:) n Я использую конфигурацию yaml

Doctrine 2.X Entities работают как POPO (простые старые объекты PHP). Чтобы обеспечить правильное расширение, Doctrine обеспечивает вас использованием концепции JPA под названием Mapped Super Classes. Идея довольно проста. Всякий раз, когда вы хотите иметь базовый класс и хотите, чтобы ваши объекты расширялись от него (я не говорю о наследовании на уровне БД), все, что вам нужно сделать, это создать свой базовый класс как MappedSuperClass.

Вот пример: http://www.doctrine-project.org/docs/orm/2.1/en/reference/inheritance-mapping.html#mapped-superclasses

благодаря

Здесь решение от ссылки Гильерме Бланко. Мне нравится иметь опубликованное решение вместо ссылки, которая в конечном итоге больше не может работать в будущем:

<?php /** @MappedSuperclass */ class MappedSuperclassBase { /** @Column(type="integer") */ protected $mapped1; /** @Column(type="string") */ protected $mapped2; /** * @OneToOne(targetEntity="MappedSuperclassRelated1") * @JoinColumn(name="related1_id", referencedColumnName="id") */ protected $mappedRelated1; // ... more fields and methods } /** @Entity */ class EntitySubClass extends MappedSuperclassBase { /** @Id @Column(type="integer") */ private $id; /** @Column(type="string") */ private $name; // ... more fields and methods }