
Sergey
28.01.2017
19:18:55
пусть сущности вообще ничего не знают о том что их надо как-то где-то отображать

Taras
28.01.2017
19:18:56
блин, понимать бы по человечески как применять корректно DTO... :(

Sergey
28.01.2017
19:19:14
ну блин, как применять правильно
тебе нужна где-то какая-то структура данных, например элемент списка

Google

Sergey
28.01.2017
19:19:24
пилишь класс
пилишь мэппер

Taras
28.01.2017
19:19:41
в теории это та же сущность в которую входит все остальное, но как генерировать эту сущность - я не врубаюсь.

Sergey
28.01.2017
19:19:44
класс может даже с публичными свойствами что бы не париться

Taras
28.01.2017
19:19:53
и насколько это отразиться на скорости

Sergey
28.01.2017
19:20:01
это просто структура данных

Taras
28.01.2017
19:20:23
модель, если я прав.

Sergey
28.01.2017
19:20:34
осталось понять представляет ли то что "это модель" хоть какую-нибудь ценность
я к тому что забудь про слова "модель, сущность" и т.д.
у тебя есть объекты

Google

Sergey
28.01.2017
19:22:11
DTO - это тупой объект для передачи состояния. он умеет хранить стэйт и все
больше ничего он уметь не должен
более того
есть такая штука как single responsibility
предположим у тебя есть объект User
и просто предположим что у него есть релейшен friends

Taras
28.01.2017
19:23:29
Одну секунду только... что такое ArrayHydrator? O_o

Sergey
28.01.2017
19:23:41
это когда доктрина тебе результат мэпит не на сущность а на массивчик
сохраняя структуру и все такое
но не надо геттеры например писать
или "виртуальные поля"
ты просто берешь массивчик, загоняешь это в некий трансформер и получаешь ровно ту структуру которую хочешь

Taras
28.01.2017
19:24:35
ооо, уже что-то начинает вырисовываться в логике
это то что я и ищу... на аналогию как работал с фракталом в ларке

Sergey
28.01.2017
19:24:54
так вот к вопросу о SRP
у тебя в сущностях при "типичном подходе" есть методы для мутации стэйта (бизнес логика по сути), и есть методы для получения стэйта
первые мы юзаем... как это не странно... когда делаем дела. Например нам надо запилить добавление в друзяшки. ну или у продуктов добавим метод order
public function order(int $quantity): OrderLine
{
return new OriderLine($this->price, $this, $quantity);
}
Но

Google

Sergey
28.01.2017
19:26:55
у тебя ж еще есть задачи вроде "надо для UI списочек юзеро показать"
или "списочек продуктов"
или "надо списочек продуктов и сколько их покупали"
и если смотреть с позиции SRP - это разные зоны ответственности
пусть сущность отвечает только за операции записи
потому что они представляют собой бизнес логику приложения
а логика UI и что где отображать - пусть кто-то другой этим будет заниматься
то есть мы даже не в репозиторий эти выборки всякие ложить будем
по хорошему

Sergey
28.01.2017
19:28:27
Чувак
А нах тебе дто если можешь массив вернуть?

Sergey
28.01.2017
19:28:58

Sergey
28.01.2017
19:29:12
можно делать по жесткому с фиксированными структурами

Sergey
28.01.2017
19:29:18
Я ж о чём)

Sergey
28.01.2017
19:29:18
а я ленивая жопа и беру массивчики

Sergey
28.01.2017
19:29:32
Ну для сериалайзкра меньше проблем
Сразу в нормал виде будет
На шаг меньше

Taras
28.01.2017
19:29:47
вот в целом это то что я и искал, если правильно помню - presenter-ы или четта такое было

Sergey
28.01.2017
19:29:54

Google

Taras
28.01.2017
19:29:58
в сериалайзе не все выведешь

Sergey
28.01.2017
19:30:19
еще их респондерами бывают называют

Taras
28.01.2017
19:30:39
это в ларке обзывалось кажись так

Sergey
28.01.2017
19:30:56
в ларке "презентеры" это раковая опухоль сверху актив рекорд модельки

Taras
28.01.2017
19:30:57
Сережа, направление понял, спасибо, пойду ковырять в эту сторону... )
Ларка - это просто раковая выхухоль :)

Sergey
28.01.2017
19:31:18
> Ларка - это просто раковая выхухоль :)
да не, норм штука. Автор мудак а фреймворк норм.
@Enleur к слову ковыряю graphql - пока нравится

Admin
ERROR: S client not available

Sergey
28.01.2017
19:33:22
напишу простенькую приложуху и буду пытаться пропихивать нашим мобильщикам

Aleh
28.01.2017
19:34:56

Sergey
28.01.2017
19:39:33
неудобно пока, но это может пока с непривычки

Aleh
28.01.2017
19:40:18
а что неудобно? (я вообще смотрел слишком мало)

Sergey
28.01.2017
19:40:50
пока основное неудобство с тем как ресолверы пишутся
не полностью пока разобрался как более оптимальный SQL генерить в зависимости от запросов
еще есть вопросы как правильно проектировать граф моделек
ну то есть потому хочу полноценную апку замутить

Google

Sergey
28.01.2017
19:41:32
посмотреть покрутить

Aleh
28.01.2017
19:41:34
а как ограничения вешаешь?
чтоб никто одним запросом всю базу не грузил )

Sergey
28.01.2017
19:42:02
еще не вешаю пока)
добавил в список "разобраться"

Taras
28.01.2017
19:43:47
@fes0r а можешь ткунь в доку доктрины по arrayhydrator? O_o в упор нихрена по этому не находится
единственное что нашел пока это: https://github.com/pmill/doctrine-array-hydrator

Sergey
28.01.2017
19:45:29
http://ocramius.github.io/blog/doctrine-orm-optimization-hydration/
вот можешь с этого начать

Taras
28.01.2017
19:48:16
Пасиба. :)

Sergey
28.01.2017
19:48:21
http://ocramius.github.io/blog/doctrine-orm-optimization-hydration/

Taras
28.01.2017
19:48:21
ушел курить

Sergey
28.01.2017
19:48:23
а вот в доке

Taras
28.01.2017
19:48:35
это та же ссылка )

Sergey
28.01.2017
19:48:36
https://github.com/doctrine/doctrine2/blob/master/docs/en/reference/dql-doctrine-query-language.rst#query-result-formats
сорян

Taras
28.01.2017
19:48:52
О! Пасиб )

Dmitriy
29.01.2017
16:18:24
@fes0r
например есть такая проблема среди разработчиков которые не хотят писать говнокод как преждевременная оптимизация
там тебя забанили

Sergey
29.01.2017
16:18:33
ну и хуй с ними
короч
был у меня случай