Павел
Что за модули и что за настройки?
Но вроде как поудобнее делать даже двойную вложенность. /Model/Context/SubContext/
Но тогда еще больше настроек и критинизма начинается) а вот на php можно что нить и намутить наавтомате
Павел
Arnur
Всем привет, php 7.4.27, new DateTime() пустой.
Из-за чего может не работать?
Konstantin
что значит "пустой"? какие-нибудь стабы-моки не подключены? php -r 'var_dump(new DateTime());' что покажет?
Arnur
Павел
Мб системное время крякнуло...
Kirill
Павел
Kirill
Файл с содержимым как на скрине? $container то что такое? Он же не объявляется)
Павел
Хотя, ща посмотрел, дейсвтительно разные 4.4 и выше. Но надеюсь так сработает)) сделайте дебаг при сборке, найдите что это за переменная и поставьте @var )
Kirill
Павел
Павел
Раньше так и работали, переменные насоздаешь где нить в одном файле, в другом их юзаешь) не через глобалы, если общий скоп
Kirill
Написал скрипт, который обходит директории и ищет папку Entity. Дальше формирую массив и подставляю в конфиг. Работает! Спасибо огромное!
Konstantin
ужасно)
Vlad
зато работает
Dmitriy
Привет костыльки
Vlad
вообще странная затея делать глобальный скан
Vlad
вот у меня у каждого модудя свои конфиги
Vlad
что я сканирую глобально это тока конфиги
Kirill
вообще странная затея делать глобальный скан
Так они абсолютно одинаковые все. Добавляется новый модуль, там папка Entity, дальше в этом модуле добавляется конфиг и импортируется в общий конфиг. В итоге в общем конфиге 50+ строк с импортом одного и того же файла)
Nikolay
Vlad
"экономим на файликах"
Vlad
🤣
Nikolay
Vlad
Павел
У меня просто такая же ситуация и не нравится это, но до разделения конфигоа не дошел, а в php не додумался конфигурировать автоматом)
Nikolay
Nikolay
Павел
Да, проще чем кажется. Как я понимаю конфиги мержатся, а не перезатираются.
𝕎𝕒𝕣𝕞
Народ, а правильно ли я делаю?
В ходе работы запроса в базу кидаю переопределённые Exception ы, и в уже в endpoint контроллера их обраьатываю, напр catch(NoResult) вернёт клиенту JsonResponse с ошибкой
Юра
Неправильно
Юра
Ну я бы так не делал
Konstantin
𝕎𝕒𝕣𝕞
Konstantin
какие и зачем?
Павел
Konstantin
навскидку, я могу только одно такое исключение придумать, которое надо ловить - сфейленный уник. все остальные исключения базы контроллер не касаются
Konstantin
ну например какие?
Павел
ну например какие?
Баланс пользователя не ползволяет сделать заказ, да любой инвариант
Konstantin
в 99% случаев нельзя экспозить исключение. просто 400/500 достаточно
Павел
Konstantin
эррор код нужен чтобы в сентри найти ошибку
Павел
Konstantin
тогда 500! :)
Павел
И клиенту надо отдать почему он не может сделать действие
Павел
Т.е. вместо "Сорри у вас не хватает денег", вы отдаете "500, мы сломались" ?
Konstantin
а, в этом смысле. я чет не туда подумал, сорян
Nikolay
Konstantin
но ваще это тоже 400, да
Konstantin
если клиент пытается потратить больше бабла, чем у него есть
Nikolay
Юра
Похоже симфа убрала из доки обработкц исключений и вынесла в платный симфоникаст видос
Павел
Юра
Вообще там есть exception normalizer
Павел
ой\
Юра
Ты можешь написать свой и в нем превратить исключеник в джсон
Павел
в другом чате) просто дубль вопроса был
https://symfony.com/doc/current/controller/error_pages.html
Юра
Это не то
Юра
А может то
Юра
Короче к меня ощущение что как-то не так я делал
Павел
Юра
А да оно
Павел
Ну я сам через kernel.exception обрабатываю в основном
Павел
Ну по сути это приятный функционал, если бы не было этого, или какой то единой точки обработки исключений, - то пришлось бы именно в контроллерах преобразовывать, исключения домена в http ответ.
Поэтому я и спросил Константина, как работать без исключений и где преобразовывать, ведь по его словам так никто не делает и это дурацкая логика. Повторюсь, что мидлвары и прочее - это приятный функционал над болерйплетом.
Павел
Не, есть вариант работать без исключений и возвращать везде result, содержащий или успех или ошибку. Но и его надо преобразовать в http response
Павел
Хотя если брать ошибки доктрины (но тут двусмысленно: может быть констрейнт который доменная логика и 400, а может быть 500 - ошибка запроса), то да, Ошибки запроса (500) забить хер, поставить отлов не доменных исключений и отдавать 500 в опредленном формате, а разбирать уже в каком то логгере, клиенту знать не нужно.
Возможно я сам не верно понял вопрос ТСа)))
Konstantin
Konstantin
ни в коем случае так делать: иначе мы клиенту покажем что-то вроде "cannot connect to database 10.7.111.222 with user admin and password p4$$w0rd".
то есть первое, мы должны обозначить своё исключение, которое можно показать юзеру - UserDescribableException (к неймингу не цепляйтесь только), в котором есть поля error_code/error_description. все вообще исключения показывать юзеру ни в коем случае нельзя - там могут быть какие-то сенситив-данные (адреса, пароли, токены, с3-бакеты и черт знает что еще)
Konstantin
Ну по сути это приятный функционал, если бы не было этого, или какой то единой точки обработки исключений, - то пришлось бы именно в контроллерах преобразовывать, исключения домена в http ответ.
Поэтому я и спросил Константина, как работать без исключений и где преобразовывать, ведь по его словам так никто не делает и это дурацкая логика. Повторюсь, что мидлвары и прочее - это приятный функционал над болерйплетом.
ответ что делать с сообщением "у вас мало денег, не могу перевести" - выше. ошибки конкретно доктрины - "кривой запрос", "сфейленный констрейнт", "ошибка подключения" точно так же юзеру показывать нельзя, это вообще не касется предметной области