Все примеры, что есть по DDD, конечно классные и все такое, но когда дело доходит до разработки появляются вопросы.
К примеру у нас есть сущность, которая может содержать коллекцию других сущностей.
Например: Сущность Клиент, которая может содержать коллекцию из сущностей Тренировка.
Иногда бывает задача, когда нужно достать в контексте клиента одну конкретную тренировку - например на странице конкретной тренировки.
Это очень легко сделать, обратившись к коллекции, пройти ее циклом и найти нужную сущность, либо по ключу.
Однако, зачем делать запрос и получать все тренировки, если нужна только одна?
Мы так-же можем запросить 1 тренировку и поместить ее в коллекцию, тогда это будет частичный объект с неполными данными, что не есть хорошо (да еще и контекст нарушается).
В общем как поступать в случаях, когда в контексте сущности нужна часть данных?
Ну и конкретные вопросы
1. Можно ли в сущности содержать методы, например getTrainings() и getTraining($id) с отложенной загрузкой?
2. Не напрашивается ли тут использование каких-то временных VO, которые будут сформированы с помощью Сервисов и и будут содержать данные для конкретной рабочей страницы?
Не усложняйте без необходимости. Нужна конкретная тренировка - получайте ее объект без всяких коллекций. Либо самостоятельно (Training::findOne(['training_id' => $trainingId])), либо через клиента ($client->getTraining($trainingId))