Alexey Mishurovskiy
в DTOSchedule пропиши аннотации валидации. и валидируй объект целиком
Alexey Mishurovskiy
тебе не нужна будет вся эта партянка
Shokha
Alexey Mishurovskiy
а что именно не получается ? не работает или ругается ?
Shokha
Shokha
Shokha
Alexey Mishurovskiy
зачем ты все пихаешь в один валидатор
Alexey Mishurovskiy
ты для начала провалидируй каждое ДТО в отдельности, посмотри что все работает
Alexey Mishurovskiy
ты пытаешьшься в коллекцию занихать валидацию элементов -ДТО а их валидация должна лежать в них самих.
Alexey Mishurovskiy
Как говорится Keep it simple
Shokha
Shokha
Юра
А если спамить запрос в.объект и его отвалидировать обычными ассертами?
Юра
Так сказать dto
🦔
/report @admins :x
Юра
Юра
Юра
Это не поможет?
Unreal
Roman
--no-dev длы прода есть , это само собой. Однако пакекет то на проде используется. А о куда качает source/dist в композере к окружению не относится.. Там два отдельных флага - - prefer-source / - - prefer-dist
Unreal
Зачем вам тестовые пакеты на проде?
Unreal
Ничего не понятно
Roman
Пакет - это рабочий код + тесты к нему. Рабочий код нужен на проде, тесты нет.
Это делается следующим образом:
Композер может устанавливать пакет (composer install) либо через source либо через dist.
По умолчанию dist (—prefer-dist) - это архив с кодом. Гит может исключать из архива лишнее через .gitattributes, поэтому папка тестов в прод не попадает.
source (—prefer-source) - качает через git clone из репы, это дико долго и неэффективно, если качать все пакеты так.
Конкретно в этом случае для dev окружения для конкретно этого (и только этого) пакета нужно качать именно —source, так как в тестах приложения используется классы из тестов пакета.
Shokha
/**
* @ORM\Column(type="date_immutable", nullable=true)
*/
private DateImmutableType $birthDate;
$user->setBirthDate('2020-01-01');
error: Cannot assign string to property of type Doctrine\\DBAL\\Types\\DateImmutableType
Shokha
как передать в сеттере что 2020-01-01 это DateImmutable
kix
Принять строку и в сеттере инстанцировать то, что нужно
mike
Shokha
Andrey
Доброго дня!
А подскажите, пожалуйста,
есть entity, в ней есть поле типа jsonb
как выбрать только те, у которых проходит в том числе и такое условие:
jsonb_exists(field, 'myKey')
?
условия собираются динамически
Юра
https://github.com/opsway/doctrine-dbal-postgresql
Юра
может это поможет?
Dmitriy
Всем привет! Извините, возможно оффтоп, у меня вопрос по phpstorm. При заполнении объекта, бывает нужно выбрать большое кол-во сеттеров. Я выбираю их из списка по одному, если сеттеров много, то можно пропустить парочку и приходится сверяться с общим списком - короче это не удобно. Может быть есть способ как выбрать все сеттеры сразу или выделить нужные? Расскажите как решаете эту проблему?
kix
Добавьте именованный конструктор, который бы всё нужное в себя отдельными параметрами включал
Dmitriy
Dmitry
Dmitriy
Юра
Напугал именоваными конструкторами
Юра
Я думал чет новое добавили уже
Юра
Типо как в дарте
kix
Ну дак public static function createFromBlahBlah
Юра
А вообще да адептам ДТО надо написать уже плагин для шторма который бы сеттеры генерил
Юра
тут недавно кидали какую-то либо которая перегоняет из одних объектов в другие. как-то там маппер какой-то
Юра
Может поможет тебе
Alexey
Maks
Сергей
Юра
Та я про вызов сеттеров
Юра
https://github.com/mark-gerarts/automapper-plus
Alexander
Та я про вызов сеттеров
Адепты дто (на самом деле адепты типизации) предпочитают именованные конструкторы и отсутствие сеттеров как таковых :)
Юра
Не ну а за что нам платят
Юра
Сеттеры дергать
Юра
Иначе чё
Alexander
По ссылке самый первый пример - класс без сеттеров
Юра
Ты не заметил там комент
Юра
// and so on
Alexander
и там дальше геттеры
Alexander
Хорошая, годная статья по теме - https://www.thinktocode.com/2018/08/30/named-constructors-for-domain-objects/
Dmitriy
Alexander
// and so on
https://www.thinktocode.com/2018/04/02/symfony-4-rest-api-part-2-data-transfer-object/
Alexander
Ну симфони и круды в контроллерах генерирует.
Никто не запрещает свои генераторы сделать, например.
Alexander
Нужно это вам или нет - решать вам.
Alexander
Есть проекты без всяких дто, большие, нагруженные - все ок.
Dmitriy
Нужно это вам или нет - решать вам.
Я это понимаю, просто немного пошатнулись авторитеты: никогда не сомневался в правильности подхода с созданием геттеров и сеттеров, сейчас вижу, что есть альтернативы. Буду разбираться, еще раз спасибо
Alexander
Серебряных пуль не бывает
Юра
Сейчас вообще в моду снова заходит функциональщина
Alexander
Alexander
Alexander
Alexander
Старый холивар вобщем. https://habr.com/ru/post/224879/
Dmitriy
Старый холивар вобщем. https://habr.com/ru/post/224879/
да, уже нашел статьи на хабре, что геттеры и сеттеры - это нарушение инкапсуляции, надо юзать именованные конструкторы. До этого читал, что конструкторы - это нарушение инкапсуляции.. Короче тут кто во что горазд)
Dmitriy
но этот подход мне нравится больше, чем сеттеры
Юра
А в конструкторе не должно быть сайд эффектов
Юра
На всякий
Юра
В новом синтаксисе пхп упрощается установка полей из конструктора
Юра