ну wishlist должен работать как для залогиненого так и для анонима
как хранить в бд для анонима?
если допустим оставить в сессии для анонима то что буде после логина?
допусти я защел на сайт, добавил чет в wishlist потом решил залогинется, выходит надо мержить wishlist базы и сессии?
>>>автору они в этой ситуации не нужны, согласен. Я сейчас почти все время делаю все на билдерах, и мне дико нравится.
ну так а для моей задачи это правильно будет сделать на билдерах?
один метод билдера через репозиторий делает запрос и возвращает простой обьект ( User )
второй делает 2 запроса через репозиторий и возвращает более сложный обьект ( User с загруженными группами )
если отбросить тему ОРМ
на одной странице надо отобразить простой документ, а на другой его же но внизу список групп
как это спроектировать лучше ?
можно $user->getGroups().
а можно сделать 2 конструктора
User::create()
User::createWithGroups()
еще слышал про паттерн по-моему "репрезентация" но не уверен так как ничего не нахожу
чтоб один и тот же обьект иметь возможность получить в нескольких вариантах
спасибо. посмотрел. очень полезное видео
я предполагаю что у вас на вооружении есть много других видео которые обьясняют продвинутые вещи для симфони и проектирования
буду признателен если поделитесь ссылками на полезную "сильную" инфу по этой тематике
Сергей Протько: а если как в моей задачи - достать предков. Это ведь тоже можно сделать по отдельности и эта операция будет расцениваться как маленькая транзакция? Т.е запахло oltp?
Сергей Протько: да но это очень типичная задача. Программер начинает писать проект на симфони - видит в документации доктрину, описывает свои энтити. Сначала обычный crud но очень скоро все усложняется группами и категориями
Т.е. использовать ОРМ изначально ошибка как я вас понял?
Мало проектов остаются чистым OLTP
>> Например: у вас уже есть загруженный пользователь, хотите достать все его группы. В случае Doctrine ORM это может выглядеть как: $user->getGroups()
А как это спроэктировать без орм?
Репозиторий делает запрос в бд по ИД. Маппит результат в UserObject. После В UserObject есть метод getGroups (для моего случая getParentsChain) который обращается к репозиторию и достает вторую порцию данных и снова маппит их.
Или как?
дальше мне хочется сделать нечто вроде
$result2 = new Collection($result); // UserReduced[]
но мне не хочется создавать класс Collection мне хочется чтоб это был array, но с кастомным конструктором