Apxat
https://www.youtube.com/watch?v=Soqxx-CejhE
Kirill
Kirill
квери билдеры нужны для того, чтобы строить запросы, верно?
Kirill
а запросы строить требуется ровно в одном случае, когда есть какое-то условие, в зависимости от которого запрос может быть перестроен
Kirill
в противном случае смысла никакого в квери билдере не только нет, но он ещё и скорее мешает
Павел
Опять же если брать qb, то будет быстрее с учетом автокомплита
Kirill
Kirill
для этого и квери билдер не нужен
Павел
@SerafimArts ты пишешь в стиле пример которого я написал?
Kirill
Ну вот запрос тебе, перепиши его на qb
Kirill
$query = $this->dql(<<<'DQL'
SELECT lobby
FROM App\Domain\Lobby\Lobby lobby
WHERE SIZE(lobby.players) = 0
DQL);
Kirill
причём запрос довольно простой
Kirill
Kirill
я полностью согласился бы с тобой, если б dql не автокомплитился и там не было бы рефакторинга или подсказок
Павел
Kirill
ээээ, так нельзя же так вроде
Kirill
SIZE - это функция DQL
Kirill
а, ну мб, почти не пользуюсь qb
Павел
Kirill
Kirill
шторм поправит сам всё
Павел
и в чём проблема?
Ну надо запрос переписывать, или искать по вхождению полного пути?
Kirill
не надо ничего переписывать
Kirill
это же встроенный язык
Kirill
Павел
так это dql
Тип шторм понимает отдельный такой контекст here doca ?
Kirill
ну конечно
Kirill
Павел
Kirill
Павел
Kirill
ну так это-то понятно
Kirill
и функции зареганные в доктрине подсвечиваются все
Kirill
в любом случае видеть сразу запрос, если он длиннее тупого файнда по id - проще так
Павел
Короче я понял, что люди так пишут, встречаю не первый раз, не понимаю зачем ну да ладно ))
Но теперь уже 2 версии:
- экономия ресурсов на qb
- автокомплит шторма по контексту HERE DOC (хотя я в принципе ниразу не обламывался)
Kirill
ну типа у меня позиция: для каждой задачи свой инструмент, доктрина благо предоставляет их 5 штук на все случаи жизни)))
Kirill
1) нативные квери
2) dql
3) квери билдер
4) спеки
5) хелперы findX/getX в репах
The Ant
У тебя кстати инфраструктура в домене, почему так?
Kirill
The Ant
Потому что сущности дохтрины
The Ant
Они инфраструктурые
Kirill
а каким боком сущности связаны с доктриной?
The Ant
Это персистенс слой вообще
Kirill
персистенс - это репы
The Ant
Репы это доктрина, и ее сущности
Kirill
ещё раз спрашиваю, почему энтити, ака аггрегаты - это инфра
The Ant
Потому что доктрина, вот почему, и персистенс
Kirill
ещё раз, причём тут доктрина?
Kirill
как вообще сущности связаны с доктииной?
The Ant
Что она у тебя в домене делает?
Kirill
кто?
The Ant
Доктрина
Kirill
там ни строчки доктрины нет
Павел
The Ant
А сущности есть. И даже dql доктриновских юзаешь
The Ant
Как так-то?
Kirill
ну конечно есть, потому что сущности - часть ддд)
Kirill
и часть домена
The Ant
И дэкуэл тоже часть домена ) ладно, я понял )
Kirill
где?
The Ant
На скрине выше
Kirill
чо? там ни на одном скрине нет неймспейса
The Ant
Догадаться несложно 🤷
Kirill
пиздец...
The Ant
Я тож так думаю )
Павел
@theantt
Сущности доктрины это просто классики с логикой.
На них ты прописываешь аспектами (аттрибутами) маппинг на бд, но ты можешь это сделать через xml. При этом остальной код у тебя не изменится.
Далее репо.
Интерфейс прописывается в домене
Реализация с dql и прочим - в инфре.
Но опять же это если разделять на интерфейс и реализацию, зачастую бесполнезный дроч
Kirill
Kirill
ты охуенные выводы делаешь, конечно
Kirill
Павел
Но опять же, если не разделять на интерфейсРепо и РеализациюРепо, то репо бы я засунул в домен и не парился, потому что это доменный контракт, всегда можно вычленить его в интерфейс потом без смены путей и логики
The Ant