Size: a a a

2020 August 11

AZ

Artem Zakirullin in PHP
Что-то сложно. Сырые данные -> невалидный DTO -> валидтный DTO -> валидный VO
Что бы сразу из сырых данных не сбилдить VO?
источник

ВУ

Валентин Удальцов... in PHP
Artem Zakirullin
Что-то сложно. Сырые данные -> невалидный DTO -> валидтный DTO -> валидный VO
Что бы сразу из сырых данных не сбилдить VO?
Ошибки для контроллера нужны все сразу, а не первая
источник

A

Aleksandr Khristenko in PHP
Валентин Удальцов
Ошибки для контроллера нужны все сразу, а не первая
Как это противоречит? Конструктор может возвращать список ошибок, а не первую.
источник

VS

Vlad Sobenko in PHP
Aleksandr Khristenko
Ну можешь воспринимать так, да.
Напряжно дополнительный обьект делать.
Короче пока костыльно сделал так: стейт(поля) DTO могут быть в невалидных типах. Делаю геттеры дто, которые возвращают валидные типы. В геттерах AssertЫ
источник

AZ

Artem Zakirullin in PHP
Валентин Удальцов
Ошибки для контроллера нужны все сразу, а не первая
Как-то видал такую дичь :)
источник

ВУ

Валентин Удальцов... in PHP
Aleksandr Khristenko
Как это противоречит? Конструктор может возвращать список ошибок, а не первую.
Конструктор не может ничего возвращать, он void
источник

ВУ

Валентин Удальцов... in PHP
А exception с массивом ошибок — увольте)
источник

AZ

Artem Zakirullin in PHP
:D
источник

A

Aleksandr Khristenko in PHP
Валентин Удальцов
Конструктор не может ничего возвращать, он void
Я же говорил смарт конструктор. Т.е. конструктор делаем приватным, создаем статический метод, который возвращает либо объект, либо список ошибок.
источник

ВУ

Валентин Удальцов... in PHP
И не забывай про коды ошибок, локализацию
источник

ВУ

Валентин Удальцов... in PHP
Aleksandr Khristenko
Я же говорил смарт конструктор. Т.е. конструктор делаем приватным, создаем статический метод, который возвращает либо объект, либо список ошибок.
Это уже ничуть не меньший велосипед, чем с dto. Только неочевидный
источник

VS

Vlad Sobenko in PHP
Aleksandr Khristenko
Я же говорил смарт конструктор. Т.е. конструктор делаем приватным, создаем статический метод, который возвращает либо объект, либо список ошибок.
Выглядит очень стремно)
источник

VS

Vlad Sobenko in PHP
Vlad Sobenko
Напряжно дополнительный обьект делать.
Короче пока костыльно сделал так: стейт(поля) DTO могут быть в невалидных типах. Делаю геттеры дто, которые возвращают валидные типы. В геттерах AssertЫ
Как вам такой варик?
источник

ВУ

Валентин Удальцов... in PHP
Да и vo это про бизнес-слой, а мы про api вообще говорим. Между ними ещё асинхронная шина, которая эту dto отправит не сразу может быть
источник

A

Aleksandr Khristenko in PHP
Валентин Удальцов
Это уже ничуть не меньший велосипед, чем с dto. Только неочевидный
Не вижу ничего неочевидного.
источник

A

Aleksandr Khristenko in PHP
Плюс такой подход как раз замечательно работает с псалмом.
источник

A

Aleksandr Khristenko in PHP
Vlad Sobenko
Выглядит очень стремно)
Очень стремно выглядят такие конструкторы?
источник

VS

Vlad Sobenko in PHP
Aleksandr Khristenko
Очень стремно выглядят такие конструкторы?
То что обьект бизнес логики ещё шарит, какие ошибки нужно показывать юзеру. Похоже на try catch для вывода ошибок валидации.
источник

A

Aleksandr Khristenko in PHP
Vlad Sobenko
То что обьект бизнес логики ещё шарит, какие ошибки нужно показывать юзеру. Похоже на try catch для вывода ошибок валидации.
Он не шарит. У него просто есть инварианты, которым он должен удовлетворять. И он возвращает те, которые он нарушает.
А как дальше их отображать это уже не его дело.
источник

VS

Vlad Sobenko in PHP
Aleksandr Khristenko
Он не шарит. У него просто есть инварианты, которым он должен удовлетворять. И он возвращает те, которые он нарушает.
А как дальше их отображать это уже не его дело.
Ок. И как выглядит этот вывод ошибок? Как потом эти ошибки связываются с теми, что нужно показать юзеру?
источник