Создание переносимых пакетов с расширяемыми сущностями в Symfony2

Я хочу создать несколько пакетов Symfony2, которые можно повторно использовать в разных проектах, но в которых объекты также могут быть легко расширены при необходимости.

Примером может служить многоразовый UserBundle, который содержит объект User со всеми определенными отображениями ORM. Однако в моем приложении я мог бы захотеть расширить этот объект и добавить дополнительные столбцы, ассоциации или переопределить некоторые сопоставления родителя.

Ближайшим решением, которое я смог найти, являются сопоставленные суперклассы Doctrine2, но тогда я потерял бы плагин-и-игровость моего повторно используемого пакета, мне всегда пришлось бы расширять сопоставленный суперкласс в моем приложении, даже если Я не хочу изменять сопоставления.

Другие задокументированные схемы наследования требуют изменения сопоставлений родителя, и тогда мой UserBundle больше не будет переносимым между проектами.

Есть ли способ определить полностью-рабочий объект в одном пакете и при этом расширить его в другом пакете?

19
задан BetaRide 8 February 2013 в 07:35
поделиться