
Sergey
09.12.2016
16:31:19
ну тип того, в контроллере будет что-то типа
return new Item($product, new ProductListItemTransformer());
а вот как будет выглядеть мидлваря которая все будет склеивать я пока не знаю)
ну и у меня еще пара безумных идей в духе
return new ProductListRepresentation();

Google

Sergey
09.12.2016
16:32:37
а внутри этой хрени будет описано как сгенерить dql, который сфетчит массивчик
что бы сущности в целом не грузились
и можно было юзать разные клевые штуки вроде... читать данные из эластики

Denis denya Voskoboinik
09.12.2016
17:18:37
ребят, возможно глупый вопрос, но что делать, если нужно переименовать св-во сущности,, как найти все места где оно используется

Sergey
09.12.2016
17:23:32
пхпшторм умеет такое

Fayozjon [CybernatiC]
09.12.2016
17:23:56
Рефракторинг

Denis denya Voskoboinik
09.12.2016
17:24:24
оуу, круто как?

Sergey
09.12.2016
17:35:29
https://www.jetbrains.com/help/phpstorm/2016.2/refactoring-source-code.html

Sergey
09.12.2016
17:35:58
Refactor -> Rename
или Refactor -> Move если нужно неймспейс еще сменить

Sergey
09.12.2016
17:36:46
оуу, круто как?
вообще рекомендую периодически гуглить видосы где показывают волшебные штуки в шторме. Есть множество разных плюшек которые нехило увеличивают продуктивность. А то большинство штормом пользуются как блокнотом

Sergey
09.12.2016
17:37:21
всякие шорткаты типа pubf вместо написания целиком
генерация методов, полей

Google

Sergey
09.12.2016
17:37:28
пхпдоков
штуки с дебаггингом

Denis denya Voskoboinik
09.12.2016
17:37:58
спасибо, просто не нужно было рефакторить симфони еще, вот и не сталкивался)

Sergey
09.12.2016
17:38:06
я лайв темплейты себе настроил - так вообще збс
пишешь it и тебе funtion it_$() {} генерится

Denis denya Voskoboinik
09.12.2016
17:38:19
а если есть неявное обращение в твиге он же не найдет наверное

Sergey
09.12.2016
17:38:30

Denis denya Voskoboinik
09.12.2016
17:38:44
ну в контроллере делается find всех полей

Sergey
09.12.2016
17:38:49
ну с учетом того что информация о типах теряется - врядли

Denis denya Voskoboinik
09.12.2016
17:39:03
а в твиге client.name

Sergey
09.12.2016
17:39:24
тип для client потерян же
вообще ты всегда можешь тыкнуть find usages и посмотреть найдет или нет

Denis denya Voskoboinik
09.12.2016
17:41:33
та у меня нет такого, ребята тут думают внедрять элоквиент или доктрину) я им плюсы доктрины генерю)

Sergey
09.12.2016
17:50:02
если твои ребята мыслят табличками в базе то плюсы доктрины сойдут на нет
ну мол... я сейчас планирую писать аналог элоквента для доктрины)))
что бы сущности мэпились на структурки с публичными полями
или вообще на массивы
только для чтения конечно
read model для доктрины типа
ну и да

Google

Sergey
09.12.2016
17:51:42
если у тебя в сущностях будут геттеры и сеттеры - то как бы толку тоже нет

Ivan
09.12.2016
17:58:47
@fes0r а ты не знаешь либы для гидрации выборки из sql в структурки?

Sergey
09.12.2016
17:59:30
если тебе надо тупо массив на объект насодить - zend hydrator и есть окромиусовский generated hydrators
а если надо plain на дерево объектов... увы не знаю... сам ищу
был paper

Ivan
09.12.2016
17:59:53
выборку из SQL на массив ну или на DTO
с коллекциями, с присоединёнными сущностями

Sergey
09.12.2016
18:00:13
массив на массив - вот неплохой - https://github.com/ScriptFUSION/Mapper
массив на объекты... знаю только 1:1 который мэпит без изменений в структурах
https://github.com/cweiske/jsonmapper
в целом в свое время пробовал https://github.com/idr0id/Papper

Ivan
09.12.2016
18:05:32
сейчас его и использую, немного пропатчил, т.к. он был завязан на ORM (entity manager, class metadata)

Sergey
09.12.2016
18:11:23
https://framework.zend.com/manual/2.4/en/modules/zend.stdlib.hydrator.html
ну из того что вменяемое есть

Ivan
09.12.2016
18:16:45
так его можно заюзать для гидрации plain выборки SQL с fetch-join'ами, коллекциями и т.п
?
или это маппинг массива на объект со схожей структурой?
$statement = $this->connection->prepare('
SELECT
book.isbn AS book_isbn,
book.name AS book_name,
author.id AS author_id,
author.name AS author_name,
category.id AS category_id,
category.name AS category_name
FROM author
LEFT JOIN book ON book.author_id = author.id
LEFT JOIN category ON book.category_id = category.id
');
$statement->execute();
$authors = $this->hydrator->hydrateAll($statement, $rsm);
http://i.prntscr.com/95c3a0f45fbb44a894c7b55f8e72dd62.png
такое вот

Oleg
09.12.2016
21:00:35
Бля окрамиус опять жгет в твиттере

Google

Oleg
09.12.2016
21:00:38
https://twitter.com/ocramius/status/806837281973792768
Весь тред просто легендарен

Sergey
09.12.2016
21:00:57
ооо, борис
меня шведы долго заебывали борисом)
how to squat like a slav :D

Oleg
09.12.2016
21:02:14
Почитай там всю конву сначала для контекста
Огонь

Sergey
09.12.2016
21:05:49
?
это уж совсем не по теме флуд
а я и не знал что егор java/php разраб

Sergey
10.12.2016
11:09:08
php?
серьезно?

Sergey
10.12.2016
11:09:30
да) в амстердаме пока работал писал и на том и на том
но вообще в джаву типа из пхп перешел

Sergey
10.12.2016
11:25:36
@Enleur слушай, может ты подскажешь... я вот думаю все же на осове окромиусовского гидратора запилить свой, который будет поддерживать рекурсивную гидрацию
насколько вообще адекватна идея вложенных объектов в контексте DTO?
я вот чет думаю думаю и не могу пока придумать "чем плохо"

Sergey
10.12.2016
11:26:36
ну вообще норм
а не смотрел в сторону симфони сериализатора?
хотя не то

Google

Sergey
10.12.2016
11:27:14
не он норм, если ты будешь свои нормалайзеры писать

Sergey
10.12.2016
11:27:25
ну хз даже. а че зендовый гидратор умеет? а то я не помню уже

Sergey
10.12.2016
11:27:34
ну он умеет гидрировать
и ты можешь составлять из маленьких простых гидраторов что-то посложнее
)
но из коробки он рекурсивно собирать объекты не умеет
хотя возможность такую дает, просто неудобно
хм... может реально symfony serializer потыкать

Sergey
10.12.2016
11:29:49
а из доктрины не пробовал чисто гидратор выдрать?