Недавно узнал о паттерне DTO
, до этого в приложении мои методы возвращали массивы - и это был ад их рефакторить. Теперь понял, что этот паттерн сильно упростит разработку.
Посмотрел несколько примеров, как работают с этим паттерном, я честно говоря, мнения очень разные, а именно:
Одни говорят, что Data Transfer Object
не должен иметь никаких методов, должны быть только свойства.
Другие, добавляют в эти объекты геттеры, чтобы вызывать свои свойства через них.
Также, видел варианты, когда создают какой-то один абстрактный класс для DTO
в котором реализуют функционал инициализации свойств через конструктор (в конструктор принимается массив ключ => знач
), и соответствующим свойствам выставляются значения.
Не совсем понял, как правильно должно это быть.. Можно ли делать геттеры (они же никакую логику не задают) ? Как быть с инициализацией данных ? И какие есть варианты аниверсальной инициализации через родительский класс 0 если так можно ?
Простая инициализация DTO
мне больше нужна чем геттеры, т.к. очень хочется писать так:
return new myDTO(["key" => "val"]);
или еще как-нибудь если есть варианты ? Чтобы не писать так:
$dto = new myDTO();
$dto->param1 = $value1;
...
Буду благодарен за развернутый ответ!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
есть такая форма
Всем приветНужно загружать 3 файла в форме, они хранятся в отдельной таблице
Всем доброго времени суток! Например, у меня на входе есть String date = "052018" (май 2018)