Size: a a a

2020 July 21

А

Алексей R in Yii Framework 3
Alexander Makarov
Если вдруг он не может быть настроен чтобы выдать JSON - в нём косяк.
он стоит обычно в начале пайплайна и там от него толку мало для JSON
источник

AM

Alexander Makarov in Yii Framework 3
Dmitry Naumenko
ErrorHandler – это last chance перед Uncaught excelption
Так и отдача ошибки при исключении API - это last chance.
источник

DN

Dmitry Naumenko in Yii Framework 3
Middleware у меня ловит мои исключения связанные с логикой приложения и преобразовывает их в документы JSON, выставляя правильный статус-код ответа в зависимости от класса исключения. Это позволяет на писать лишние однообразные try/catch в контроллерах. Всё остальное throw $caughtException

ErrorHandler ловит ошибки несвязанные с логикой приложения – чистые фаталы вроде отвалов базы, етц
источник

RT

Roman Tsurkanu in Yii Framework 3
я оба подхода встречал, кто то делит исключения на бизнесовые и системные. Кто-то нет.
источник

RT

Roman Tsurkanu in Yii Framework 3
мне кажется более простым когда любое исключение отдается в установленом формате.
источник

RT

Roman Tsurkanu in Yii Framework 3
из преимуществ - фронты могут обработать корректно даже твои фаталы
источник

RT

Roman Tsurkanu in Yii Framework 3
не уверен что это приемущество, но мне казалось так
источник

DS

Dmitriy S in Yii Framework 3
Dmitry Naumenko
Middleware у меня ловит мои исключения связанные с логикой приложения и преобразовывает их в документы JSON, выставляя правильный статус-код ответа в зависимости от класса исключения. Это позволяет на писать лишние однообразные try/catch в контроллерах. Всё остальное throw $caughtException

ErrorHandler ловит ошибки несвязанные с логикой приложения – чистые фаталы вроде отвалов базы, етц
По сути тот же ApiDataWrapper из демки, только работает еще и по исключениям
https://github.com/yiisoft/yii-demo/blob/master/src/Middleware/ApiDataWrapper.php
источник

DN

Dmitry Naumenko in Yii Framework 3
ErrorHandler всё равно вернёт JsonApi-совместирую ошибку.
Middleware же может проставить нужные статус-коды, добавить доступную информацию о контексте ошибки, знаю специфику обрабатываемого исключения.
источник

RT

Roman Tsurkanu in Yii Framework 3
коды из exception может по идее и еррор хендлер поставить
источник

RT

Roman Tsurkanu in Yii Framework 3
вообщем я думаю оба варианта нормальные.
источник

RT

Roman Tsurkanu in Yii Framework 3
Dmitry Naumenko
ErrorHandler всё равно вернёт JsonApi-совместирую ошибку.
Middleware же может проставить нужные статус-коды, добавить доступную информацию о контексте ошибки, знаю специфику обрабатываемого исключения.
Ну то есть errorhandler все равно настраивать придется.
источник

SI

Sergei Iamskoi in Yii Framework 3
Alexander Makarov
> Доктрина, потому что Spiral не смог там где нужно было

О, интересно. Где не смог?
Наверное, имелось ввиду не spiral, а cycle не смог. Сейчас самое критичное это составные PK - но обещают в скором времени. И поддержки схем постгреса еще нет - только public.
источник

DN

Dmitry Naumenko in Yii Framework 3
да, cycle)
источник

В

Виктор in Yii Framework 3
Народ, подскажите best practice по архитектуре, плиз. Ничего красивого в голову не идет :(
Задача: SOLIDно положить в очередь сообщение в виде сериализованного в любом виде объекта с одним методом, который должен будет выполниться после того, как консьюмер это сообщение получит. Сейчас проблема в том, что этот Job тащит за собой сервис, который должен будет выполнить определенные действия, а сервис - еще уйму всего за собой по цепочке.
Пока не придумал ничего лучше, чем переделать нашу очередь на тот способ, что реализован в symfony/messenger: сами сообщения там - исключительно DTO, а при чтении консумером они интерпретируются как эвенты для EventDispatcher.
источник

А

Алексей R in Yii Framework 3
ты можешь тащить не сервис а типа промис сервиса
источник

А

Алексей R in Yii Framework 3
для ленивой инициализации сервиса
источник

В

Виктор in Yii Framework 3
Алексей R
ты можешь тащить не сервис а типа промис сервиса
Это как?
источник

В

Виктор in Yii Framework 3
(прорываются украинские корни)
источник

А

Алексей R in Yii Framework 3
создай объект, который скушает контейнер и вернёт сервис при надобности :)
источник