Павел
Такое ощущение что есть какой то пакет, который я пропускаю с ручным автолоадом в композере
Vlad
Павел
Vlad
да шторм подсказывает вроде)
Konstantin
пытаюсь тут ипотеку оформить, не могу файл загрузить
Konstantin
признавайтесь кто писал!
Konstantin
{"status":"error","error":{"code":0,"message":"App\\GQL\\Types\\Mutation\\UploadMortgageParticipantFile::resolve(): Return value must be of type array, null returned"}}
Павел
да шторм подсказывает вроде)
Ага "\symfony\component\dependencyinjection\loader\configurator\env. Я туда полез, а функцию не нашел)
Павел
Надо было не искать а просто импортить)
Павел
Konstantin
хорошо что там не cannot connect to database 1.2.3.4 with password ... 🙂
Konstantin
порочная практика - текст исключений юзерам показывать
Павел
а че за банк
Konstantin
да это какая-то говнопрослойка между застройщиком и банками - https://dvizh.io/
Gleb
Я снова к вам с глупым вопросом. Лето, лыжи не едут.
Делаю десериализацию симфоневым сериалайзером request -> DTO -> сохранение Entity из DTO. DTO по полям очень похож на entity.
Вот получается мне либо надо огромный конструктор в DTO для десериализации, либо геттеры/сеттеры и тогда DTO не сильно отличается от Entity. И... главный вопрос, а что я делаю не так?
Была мысль десериализовывать сразу в Entity, но кажется это не тру вэй.
Юра
Юра
Жизнь стала проще
Gleb
Я знаю вот что надо разделять по хорошему. Но что-то меня результат смущает, DTO смахивает на кучку 💩
Хотя возможно это у меня просто не самый удачный пример для DTO.
Dmitriy
Аргумент резолвер, дто, сервис работает с энтити
Dmitriy
Ещё можно команду в качестве дто использовать и ее хендлер
Иван
Dmitriy
с портянкой свойств надо думать что делать, возможно вы смешали кучу функционала в одном месте
Dmitriy
аргумент резолвер немного другая вещь чем парамконвертер
Павел
Павел
Сеттеры а точнее Add-еры только для коллекций нужны
Павел
Ну если php 7.4+
Иван
Павел
Та же магия через аргумент резолвер - через сериализатор
Иван
да ещё и будет приватные поля пробивать
Павел
Лень
Павел
Павел
Так же проще)
Иван
я только не выдумываю нейминг для хендлера
хендлер и всё
Павел
Павел
Я чаще тоже просто хэндлер через автокомплит
The Ant
Зачем под каждый хендлер создавать папочку? не проще ли сделать чето типа CreateOffer? и сразу понятно что делает
Павел
The Ant
Павел
Опять таки могут быть внутренние DTO еще в самой команде
Павел
И короче вообще всё в куче будет
The Ant
ну поделить
Command/CreateOffer, Command/UpdateOffer...
Handler/CreateOfferHandler ...
Павел
The Ant
почему?
Павел
Когда в одной папке, куча рахных дтох и хэндлеров. Это как в однйо папке все энтити и сущности проекте
Павел
Отходим отходим, и вернулись обратно
Павел
Null
Ну как. Парсишь вообще все пхп файлы в проекте и все
Null
Трать ресурсы. Трать.
The Ant
Павел
The Ant
опять неудобно? у тебя все операции с оффером в 1 папочке будут, с глубиной 1
The Ant
и не раскидана каждая по своим отдельным папочкам ради чего?
Vlad
муравей докопался до папочек 🤣🤣
The Ant
потому что надо экономить иноды 🤣
Vlad
на папочках?
The Ant
шучу конешь
Павел
The Ant
вкусовщина крч
The Ant
практической пользы ноль в этих папочках )
Павел
Т.е. даже если будет UseCase/Create/{CreateOfferCommand/CreateOfferHandler} - это есть на обдумывание, так как куча одинаковых command немного калят, да
Павел
Ну а так да, если тебе удобнее без них, значит тебе лучше без них
Павел
Еще копипастить хорошо )
Павел
Роут скопировал, тольео Create на Edit поменял и готовый)
Павел
Павел
Offer/UseCase/Create/{CreateOfferCommand/CreateOfferHandler}
The Ant
ну у тебя пример неудачный слегонца
Павел
Просто оффер лежит выше
The Ant
я бы и юзкейсы сложил в общую ) выше оффера
The Ant
сразу будет понятно где искать БЛ
Павел
Короче один общий юзкейс и все выше оффера - точно нет