Size: a a a

2021 April 10

G[

GamIet [UA, Odessa] in symfony
Простейшая задача:
Симфа, доктрина, пилим блог по DDD.
Есть посты и они на разных языках. Т.е. по-факту пост - это агрегат, который содержит в себе основную инфу + несколько переводов.

Внимание вопрос:
Если постов 100штук и нужен запрос «вывести все посты с их содержимым на рус языке»...
то в доктрине это будет один запрос на select from posts. И потом внутри каждого поста будет ещё +1 запрос на select translate where post_id = ?? (Итого +100 запросов)

Или есть какой-то более быстрый вариант с join?
источник

А

Антон in symfony
Не, джоин нельзя, не по ддд
источник

G[

GamIet [UA, Odessa] in symfony
«База вышла из чата» ☹️
источник

А

Антон in symfony
После разума, который вышел после того, как ты задал свой вопрос
источник

NT

Nikolay Turskyi in symfony
А зачем на чтение доктрина?
источник

А

Антон in symfony
Ну серьезно, при чем тут ддд и как достать посты? Ей богу, каждый раз одно и то же, где ваш мозг отдыхает, когда вы вопросы такие задаете?
источник

G[

GamIet [UA, Odessa] in symfony
Так объясни, раз ты такой умный! Со сразу троллить?
источник

А

Александр in symfony
Может вы ответите человеку? Не нужно быть таким токсичным чсв
источник

AD

Andrey Dembitskyi in symfony
🍿
источник

G[

GamIet [UA, Odessa] in symfony
Ок. Допустим чтение без доктрины (например чистый Raw запрос на выходе которого массив)
Тогда объясните 2 момента:
1) Ты когда делаешь поиск одного поста (чтение) то из базы тебе в итоге нужно получить объект, чтобы как-то с ним работать. (По DDD)
Те нужно ручками писать маппер, который будет массив превращать в объект поста?

2) я делаю пост нескольких постов с рус переводом и джойном: мне в итоге теперь нужно работать с массивом неструктурированных данных (ибо не объекты) или опять писать ручками маппер на РАСШИРЕННЫЙ пост, содержащий в себе поле перевода?
источник

КГ

Константин Грачев... in symfony
Доктрина (орм) это про бизнес логику, инварианты. А бизнес логика и инварианты это когда ты пишешь в базу.
Для чтения вся эта хуита не нужна. Сырой скл запрос вытягивающий данные в том виде в котором надо показать и всё
источник

NT

Nikolay Turskyi in symfony
А зачем UI объект поста? Ты ж json отдаешь, или в Twig циклом пробигаешься по коллекции.
источник

NT

Nikolay Turskyi in symfony
Тебе нужно ui отдать - title, short body, date, count of view и  ссылку на полную статью. У тебя 20 полей в посте, ещё 10 в _content и ещё что душе угодно. Зачем выгружать все из базы, если тебе нужно для начала 5 полей? Просто включи логику
источник

G[

GamIet [UA, Odessa] in symfony
Хорошо. А если это не блог с постами, а платёжи с ежемесячными подписками , транзакциями и бизнесс-логикой. Тогда что?
источник

КГ

Константин Грачев... in symfony
Запись отдельно, чтение отдельно. У чтения нет бизнес логики, потому что ничего не меняется
источник

Ш

Шурик in symfony
Откуда у тебя бизнес-логика при отображении списка?
источник

NT

Nikolay Turskyi in symfony
На Ui для чтения тебе нужны транзакции с бизнес логикой, прям Angular ее будет выполнять через ядро доктрины со своим казино? Ты перечитай ещё раз что ты пишешь. Тебе НАДО отдать. Потом Клинт будет работать с одной Сущностью!
источник

А

Александр in symfony
Человек написал другую задачу. Нужно читать внимательно, прежде чем просить кого-то включить голову
источник

AC

Andru Cherny in symfony
Ребята, подскажите, как из зимфы вырезать флекс так чтоб он не реагировал именно на composer install.
А то я в скриптах вырезал пост инсталл, а он всеравно папки создает, и файлы редачит.
источник

КГ

Константин Грачев... in symfony
Флекс это плагин, он написан чтобы реагировать на пост инсталл
источник