Size: a a a

2020 October 07

SP

Sergey Protko in symfony
Dmitry
т.е людей клинит на предмет написания "велосипеда" самому ?
ну мысль то здравая - зачем велосипед писать.
источник

DT

Dmitriy Tkachenko in symfony
Dmitry
т.е людей клинит на предмет написания "велосипеда" самому ?
Ручной маппинг это не велосипед по отношению к автоматической гидрации
источник

D

Dmitry in symfony
Artem Aleksandrov
ну я не имел ввиду коннекшн, а скорее попытка впихнуть не впихуемое в какой-нибудь квери билдер
т.е вы имеете ввиду что люди для "супер-хрен-какой-мойми-как-сделать" запроса пытаются переложить это все в ОРМ в угоду удобности и скорости от rawSql и ручного маппинга ?
источник

SP

Sergey Protko in symfony
автоматическая гидрация это удобство за счет потери гибкости
источник

D

Dmitry in symfony
Sergey Protko
ну мысль то здравая - зачем велосипед писать.
ну в целом то да, однако, лично я, таокго мнения что гидрацию орм и тп проще юзать "по ид" максимум
все что сложнее - мне проще на голом скл и руками
источник

SP

Sergey Protko in symfony
Dmitry
т.е вы имеете ввиду что люди для "супер-хрен-какой-мойми-как-сделать" запроса пытаются переложить это все в ОРМ в угоду удобности и скорости от rawSql и ручного маппинга ?
все происходит постепенно. вот у тебя задача где 1:1 мэппинг сущностей и забы и все удобно. А вот тебе надо уже чуть-чуть еще узнать вот там - пойдут в ход обходы связей. А вот тебя уже репорты просят сделать и ты такой вжух и foreach вместо простого SQL.

простой пример - вот у тебя в базе таймстэмпы. И ты хочешь их мэпить на datetime объекты в пыхе. DBAL этого тебе не дает сделать удобно, потому ты для такой простой задачи либо пишешь тонну грязного кода который тебе не нравится либо "ну и хер с нми что не оптимально зато удобно".
источник

DT

Dmitriy Tkachenko in symfony
Sergey Protko
автоматическая гидрация это удобство за счет потери гибкости
Ака магия, которая просто работает. До определённого момента, потом больше мешает, чем помогает
источник

SP

Sergey Protko in symfony
Sergey Protko
все происходит постепенно. вот у тебя задача где 1:1 мэппинг сущностей и забы и все удобно. А вот тебе надо уже чуть-чуть еще узнать вот там - пойдут в ход обходы связей. А вот тебя уже репорты просят сделать и ты такой вжух и foreach вместо простого SQL.

простой пример - вот у тебя в базе таймстэмпы. И ты хочешь их мэпить на datetime объекты в пыхе. DBAL этого тебе не дает сделать удобно, потому ты для такой простой задачи либо пишешь тонну грязного кода который тебе не нравится либо "ну и хер с нми что не оптимально зато удобно".
ну то есть я вот активно dbal юзаю и меня тоже подбешивает дейтаймы раскукоживать или там json_decode юзать - https://gist.github.com/fesor/8139063fa93f1ab6cc034780b1135863 - вжух
источник

D

Dmitry in symfony
Sergey Protko
все происходит постепенно. вот у тебя задача где 1:1 мэппинг сущностей и забы и все удобно. А вот тебе надо уже чуть-чуть еще узнать вот там - пойдут в ход обходы связей. А вот тебя уже репорты просят сделать и ты такой вжух и foreach вместо простого SQL.

простой пример - вот у тебя в базе таймстэмпы. И ты хочешь их мэпить на datetime объекты в пыхе. DBAL этого тебе не дает сделать удобно, потому ты для такой простой задачи либо пишешь тонну грязного кода который тебе не нравится либо "ну и хер с нми что не оптимально зато удобно".
не догнал
любый тип конвертируется путем
SomeRepo:
  somemethod:
     result = connection->rawSql
     return dto::createFromResult
источник

SP

Sergey Protko in symfony
в php комьюнити просто нет нормальных либ) либо монстры и комбайны либо кривые велосипеды в гистах)
источник

SP

Sergey Protko in symfony
Dmitry
не догнал
любый тип конвертируется путем
SomeRepo:
  somemethod:
     result = connection->rawSql
     return dto::createFromResult
SELECT NOW()

замэпь на пых что бы вышел datetime immutable
источник

D

Dmitry in symfony
Sergey Protko
SELECT NOW()

замэпь на пых что бы вышел datetime immutable
new DateTimeImmutable(resultField)
источник

D

Dmitry in symfony
я не понимаю идею проблемы, ручной маппинг не составляет никакой проблемы, репа все равно вернет вам некий мапленный обьект результата
и наполнит этот обьект данными
какие данные должны прийти из хранилища мы знаем, каким должен быть результат мы знаем
конвертирование между хранилищем и возвращаемым обьектом как раз задача репозитория

да доктрина это делает автоматически, спасибо, но как я уже сказал мне она хороша только в случае "по ид" - врайт модель, допустим

рид модель не должна использовать орм из-за тяжести и тп
источник

SP

Sergey Protko in symfony
Dmitry
я не понимаю идею проблемы, ручной маппинг не составляет никакой проблемы, репа все равно вернет вам некий мапленный обьект результата
и наполнит этот обьект данными
какие данные должны прийти из хранилища мы знаем, каким должен быть результат мы знаем
конвертирование между хранилищем и возвращаемым обьектом как раз задача репозитория

да доктрина это делает автоматически, спасибо, но как я уже сказал мне она хороша только в случае "по ид" - врайт модель, допустим

рид модель не должна использовать орм из-за тяжести и тп
Много мелких проблем порождает гору скучного кода который никто не хочет писать. Тебе мэппинги внутри твоих репозиториев надо написать.

Люди просто это как решенную проблему воспринимают.
источник

SP

Sergey Protko in symfony
Хотя импеданс мисматч он как был так и есть
источник

JB

Jurij Bachkov in symfony
Бля - какой нах маппинг - есть божественные сериализаторы
источник

JB

Jurij Bachkov in symfony
и DateTime сконвертирует и кофе заварит
источник

D

Dmitry in symfony
Jurij Bachkov
Бля - какой нах маппинг - есть божественные сериализаторы
а они не то же самое делают ? не маппят данные на обьект ?
источник

SP

Sergey Protko in symfony
Jurij Bachkov
Бля - какой нах маппинг - есть божественные сериализаторы
Покажи мне как твои божественные сериал заторы справятся с задачей достать посты и комменты одним запросом в базу
источник

JB

Jurij Bachkov in symfony
Они этим как-раз и занимаются
источник