У меня есть базовый объект домена, скажем, как Персона или Кампания или Событие, которое представлено одной таблицей в базе данных. Однако у меня также есть более сложные версии этих объектов, например, PersonCampaign или PersonEvent или даже CampaignEvent, которые теоретически могут расширять один из базовых объектов.
Однако по ряду причин это усложняется, поскольку PHP не поддерживает множественное наследование (например, PersonEvent расширяет Person или Event). А также потому, что некоторые доменные объекты на самом деле являются фабричными объектами с различными свойствами и функциональностью (например, событие фактически разделено на подклассы по типу события, например, электронная почта, вызов, факс)
Самое простое решение, которое я вижу, - это иметь реальную природу изменения объекта в зависимости от того, какие данные возвращаются со слоя доступа к данным.
Есть ли у кого-нибудь предложения по лучшему способу справиться с этим? Или правильно создавать унифицированные доменные объекты, которые могут изменять свойства и поведение в зависимости от того, что в данный момент доступно для него на уровне доступа к данным?