Size: a a a

2020 August 18

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
Это не самая большая проблема, есть еще проблема с инстансами в рутовом
какая ?
источник

DS

Dmitriy S in Yii Framework 3
Александр Некрасов
какая ?
Это когда тебе сервис надо с рутового получить, но с подмененной в модуле его зависимостью. В таком случае он либо отдаст инстанс из кеше, если он там есть без подмены, либо сохранит в себе инстанс с подменой, что плохо для других модулей
источник

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
Это когда тебе сервис надо с рутового получить, но с подмененной в модуле его зависимостью. В таком случае он либо отдаст инстанс из кеше, если он там есть без подмены, либо сохранит в себе инстанс с подменой, что плохо для других модулей
ну подмену еще не использовал, но по коду видно, что это работать ннормально не будет
источник

АН

Александр Некрасов... in Yii Framework 3
Александр Некрасов
ну подмену еще не использовал, но по коду видно, что это работать ннормально не будет
public function has($id): bool
   {
       foreach ($this->containers as $container) {
           if ($container->has($id)) {
               return true;
           }
       }
       return false;
   }
даже не доходит до 2 контейнера, так как в контейнере есть class_exists ...
источник

DS

Dmitriy S in Yii Framework 3
Вот тут мы этот кейс разбирали
https://github.com/yiisoft/di/pull/134
источник

АН

Александр Некрасов... in Yii Framework 3
это видел я, но так не к чему и не пришли, но пора уже )
источник

DS

Dmitriy S in Yii Framework 3
Александр Некрасов
это видел я, но так не к чему и не пришли, но пора уже )
сделай новый пр)
источник

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
сделай новый пр)
ты там говорил что тест накотаешь )
источник

DS

Dmitriy S in Yii Framework 3
Александр Некрасов
ты там говорил что тест накотаешь )
так и не добил, надо еще кейсы обдумать
источник

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
так и не добил, надо еще кейсы обдумать
ну как будет тест, думаю уже решится
источник

СП

Сергей Предводителев... in Yii Framework 3
Подскажите, где почитать про синтаксис вот этого connection. Гуглю, не получается)
источник

AM

Alexander Makarov in Yii Framework 3
источник

AM

Alexander Makarov in Yii Framework 3
Надо в phpdoc ссылку?
источник

СП

Сергей Предводителев... in Yii Framework 3
источник

Д

Дмитрий in Yii Framework 3
Кто-нибудь хочет сделать аналог сериалайзера с возможность кастомизации ответа на лету?

На работе юзаем jms/serializer, но это решение мне не нравится.

Хочется описывать структуры в php/json/yaml/annotations, когда возвращаются данные.

Пример:
Есть метод, который возвращает UserEntity.
Не хочется делать UserOutputDTO, расписывать какое свойство куда пойдёт и так для каждой сущности.
Хочется где-то задать структуру-маппинг, которая будет автоматом преобразована в нужное. Кстати, тут возможно сделать интеграцию с OpenApi.
Еще с dto-шками бывает больно, когда приходится кастомизировать форматы в разных методах.
Пример:
Request: /user/123/id
Response: {id: *}

Request: /user/123/full
Response: {id: *, name: *, age: *, created_at: *, parent: *, children: *, ....}

Request: /post/12345
Response: {id: *, author: {id: *, name: *}}

Request: /post/12345/export
Response: {id: *, author: {id: *, name: *}, relations...}


Я понимаю, что это в сторону плохого проектирования и смешивании ответственностей методов и классов, но часто такие кейсы хочется решить за максимум час, а выходит на половину дня.

Было бы круто заложить такой пакет с интеграцией под Yii 3, чтобы из коробки и с примерами.
Аналог: есть api-platform, в которой на вход/выход свои DTO с сериализатором из коробки, но нет фичи именно для гибких сериализаторов для вложенных сущностей. Нет даже аналогов для fields из Yii2 (в Yii3 тоже нет).

Есть у кого-нибудь мысли на этот счет?
источник

RT

Roman Tsurkanu in Yii Framework 3
мне кажется это должен быть какой то маппер в пакете https://github.com/yiisoft/data-response
источник

RT

Roman Tsurkanu in Yii Framework 3
вот тут предлагают меппер для форм https://github.com/yiisoft/form/issues/37

Из формы в dto
источник

RT

Roman Tsurkanu in Yii Framework 3
я обычно это решаю созданием форматтеров,  UserFormatter PostFormatter UserCollectionFormatter
источник

RT

Roman Tsurkanu in Yii Framework 3
источник

Д

Дмитрий in Yii Framework 3
вот такого и не хочется делать, порой утомляет :)
хочется замапить или отрезать ненужные поля без классов
источник