Всем привет. Представим есть код:
interface Post
{
public function getName(): string;
public function getDescription(): string;
public function getText(): string;
}
interface PostRepository
{
public function findall()
{
}
}
Как бы все работает, все хорошо. Но к примеру, нам в сайдбаре нужно вывести список последних постов за неделю. Из данных нам нужно только название поста (getName) и короткое описание (getDescription). Если мы будем заполнять эти данные из репозитория, то сущность у нас будет не полной (getText == null), а если мы будем получать все данные, то сущность будет избыточной. (Я сильно упростил пример, у Post может быть тонна других зависимостей)
Как быть в таких случаях?
- Делать отдельный репозиторий и отдельную сущность
- Использовать stdClass[] или array[]
На проекте нет Doctrine, поэтому Proxy объекты для связей отсутствуют. Т.е. findAll / findOne из репозитория всегда вернет полный объект, даже если нужна часть этого объекта. Как вы решаете эту проблему у себя?