@symfony_php

Страница 64 из 1418
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
и насколько это отразиться на скорости

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

Sergey
28.01.2017
19:20:34
и насколько это отразиться на скорости
если паришься о скорости - то тогда как я сказал выше - DQL -> ArrayHydrator -> трансформации через какой fractal

модель, если я прав.
ты прав, это модель данных. По сути это некое представление данных. Без логики.

осталось понять представляет ли то что "это модель" хоть какую-нибудь ценность

я к тому что забудь про слова "модель, сущность" и т.д.

у тебя есть объекты

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
А нах тебе дто если можешь массив вернуть?
у тебя в этом случае массив и будет DTO)

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
ну и хуй с ними

короч

был у меня случай

Страница 64 из 1418