Dmitriy
27.10.2018
12:05:00
Sergey
27.10.2018
12:05:03
Dmitriy
27.10.2018
12:05:36
в запросе срез
Google
Sergey
27.10.2018
12:05:41
и при этом у тебя остается гибкость, не нужно нормализовывать выборку сложными способами, а по перформансу все ок будет
Dmitriy
27.10.2018
12:05:44
т.е. например 50 сущностей
Sergey
27.10.2018
12:05:47
во втором ты только для тех штук выбираешь историю
отдельно
и домэпливаешь
Dmitriy
27.10.2018
12:06:22
но это к каждой сущности из среза нужно дополнить
Sergey
27.10.2018
12:06:30
p.s. год назад я так проект разделял, что бы можно было изолировать таблички в базе по контекстам - было очень даже удобно
Dmitriy
27.10.2018
12:06:35
т.е. 100 - 150 запросов как с куста
Sergey
27.10.2018
12:06:46
нет необходимости делать это так как делает та же доктрина
where parent_id IN (ids from your slice)
Dmitriy
27.10.2018
12:07:45
и потом смапливать все дело между друг-другом?
Google
Dmitriy
27.10.2018
12:07:52
а это идея
Sergey
27.10.2018
12:07:55
да, это не оч сложно
и пофигу что будут те самые +N запросов
Dmitriy
27.10.2018
12:12:42
я понял за что нелюбят gql на бэке. Это его гребаная гибкость заставляет хуячить всякие костыли
сращивать такое несложно концептуально, но в результате мне нужно
1. Перебрать весь результирующий сэт из 1 запроса, чтобы выудить список ID
2. Запросит доп данные с where in (ids)
3. Перебрать результирующий сэт из п.2 чтобы индексировать его [id => StateDateTime]
4. Перебрать результаты, чтобы сростить данные из п.3 в п.4
Danil
27.10.2018
12:21:16
А как это сделать?
просто в запросе тянешь поле, которого нет в сущности и оно будет в result леежать рядом с сущностью
Dmitriy
27.10.2018
13:45:31
А сериалайзер не затригеррит подтягивание юзера, если в сущности есть метод getUser, но сам user еще не подтянут?
Sergey
27.10.2018
13:51:32
Dmitriy
27.10.2018
13:52:24
конечно)
можно и не анонимно, какая разница?)
Sergey
27.10.2018
13:58:03
если что - it depends. если у тебя сериалайзер работает через методы - то при вызове метода будет затригерена доктриновская прокся
Dmitriy
27.10.2018
14:20:57
Это вообще все проделки магии, которой я уже нажрался на Yii2 - там она вообще везде. Должен быть метод fetchUser и getUser тогда у сущности, чтобы было все очевидно
Urmat
27.10.2018
14:35:50
Народ, как “правильно” с помощью ентити менеджера обновить существующую запись при on duplicate? я хотел UniqueConstraintException ловить, но тогда получается два запроса
Sergey
27.10.2018
14:42:28
наиболее разумный вариант - отказаться в этом месте от ORM и юзать DBAL
Icewild
27.10.2018
14:46:19
прям какой-то национальный день отказа от ORM
Dmitriy
27.10.2018
14:53:47
27 октября - Международный день народного единства в отказе от ОРМ)
Sergey
27.10.2018
14:55:04
Google
Urmat
27.10.2018
14:56:02
Icewild
27.10.2018
14:57:46
а какая разница сколько проекту времени?
Sergey
27.10.2018
15:04:46
Ну смотря что делать, риски разные
Anton
27.10.2018
16:46:38
И никто не подскажет, мне надо просто проанализировать проект и понять какие там страницы есть. Вот в ларавеле - взяль центральный файл с роутами и примерно проверил все что отвечает или нажать можно. Есть ли какой плагинчик для шторма или еще что - чтобы все роуты сифони собрать?
Ну так чтобы прокликать и посмотреть
Icewild
27.10.2018
16:47:17
bin/console debug:router
Dmitry
27.10.2018
17:59:52
Valentin
27.10.2018
18:38:22
f4rt~
27.10.2018
19:07:34
Гайз, есть тут кто кто переодически посматривает/отслеживает всякие штуки,вне доктрины, которые пилит Марко @Ocramius
Скажите мне,пожалуйста, почему:
Он зовет инвочные классы, аля QueryFunction через $obj->__invoke($args) а не $someKindOfUsers();
Почему, он вносит __invoke в интерфейс, если это не является частью контракта класса
с остальными ньюансами, я как то еще могу мириться :)
Bohdan
27.10.2018
19:10:56
на мой вкус - чтобы не ломать глаза странным синтаксисом
Icewild
27.10.2018
20:21:01
а когда ты делаешь $someVar();
то ты теряешь эту возможность
ну и явное лучше неявного
Andrew
27.10.2018
20:24:37
Плюс если такой объект - свойство другого обьекта, то $this->prop() будет дергать метод prop(), тут или через явный __invoke или через call_user_func нужно дергать
Petr
27.10.2018
21:10:18
Bohdan
27.10.2018
21:15:27
ну даже если не грепом, то глобальным поиском в шторме - разницы никакой
Icewild
27.10.2018
21:19:43
Petr
27.10.2018
21:20:56
knopkod4v
27.10.2018
21:25:37
Google
f4rt~
27.10.2018
21:26:19
просто я не вижу юзкейса с QueryFunction как часть какой-то проперти
обычно эта штука, исключительно что бы сделала свое дело где-то в контексте и повысить читаемость
а аргумент про грепы, ну это конечно такое
тебе ничего не даст, если ты будешь искать тупо __invoke()
а то же время что так что эдак ты знаешь какой класс ищешь и можешь найти его
но никто так и не сказал про инвок в интерфейсах
Arky
27.10.2018
22:06:56
А мне интересно, почему у сериалайзера в интерфейсе только методы: serialize и deserialize, а остальных нет)
Shmaltorhbooks
27.10.2018
22:07:15
Например, какие?
Arky
27.10.2018
22:07:41
denormalize, decode etc
Vladislav
27.10.2018
22:07:59
Shmaltorhbooks
27.10.2018
22:08:06
Наверное, потому что это не его ответственность?
Arky
27.10.2018
22:08:54
Shmaltorhbooks
27.10.2018
22:10:11
Нужны они ей потому что)
Программируй интерфейсами и их не будет)
f4rt~
27.10.2018
22:10:35
Arky
27.10.2018
22:21:27
а, знач их просто забыли сделать приватными?)0
тогда понятно, спасибо)
Sergey
27.10.2018
22:22:51
Программируй интерфейсами и их не будет)
ты смотри, некотторые этот совет воспринимают слишком буквально и реально создают по интерфейсу (сущность языка, а не понятие публичного интерфейса объекта, поведение объекта, контракт) на каждый класс
Arky
27.10.2018
22:29:57
Sergey
27.10.2018
22:30:45
а как надо? Интерфейс на модуль?)
интерфейсы нужны в двух ситуациях:
- общие контракт (абстракция) - множество реализаций
- интерфейс в одном модуле а реализация в другом (пример - Logger Interface из PSR, общая договоренность между модулями, инверсия зависимостей).
Если у тебя появляется модуль Interfaces - то ты не разобрался с темой
Shmaltorhbooks
27.10.2018
22:30:46
На ответственность
Google
f4rt~
27.10.2018
22:32:03
Den
27.10.2018
22:32:08
тут по симфе спрашивать можно?..
Sergey
27.10.2018
22:32:10
Den
27.10.2018
22:32:21
ну всмысле, каждый может спрашивать?..
Sergey
27.10.2018
22:32:35
но если вопрос гуглится за 5 минут то ты идешь в РО на сутки
Den
27.10.2018
22:33:06
Если я в webpack не использую версионирование, то и manifest не нужен?
Sergey
27.10.2018
22:33:06
если же ты гуглил - опиши что именно гуглил, какие варианты уже пробовал и т.д.
бля, ты ж говорил по симфони вопрос
Den
27.10.2018
22:33:22
РО - это что?
Bohdan
27.10.2018
22:33:28
ридонли
Den
27.10.2018
22:33:48
ну в 4й жеж..
или я уже в РО?
Evgenii
27.10.2018
22:34:08
plain object же
Vladislav
27.10.2018
22:34:13
Bohdan
27.10.2018
22:34:14
я тебя не понимать
Den
27.10.2018
22:34:29
вебпак..
Bohdan
27.10.2018
22:34:34
Sergey
27.10.2018
22:34:35
но я хз, у меня вэбпаки отдельно живут