Size: a a a

2020 March 25

А

Алексей R in Yii Framework 3
но я об этом уже говорил, поэтому повторяться пока не буду )
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
ещё мне кажется, что не всё то должно быть мидлварями, что у нас является мидлварями
Что именно не должно?
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Что именно не должно?
Например \Yiisoft\Yii\Web\Middleware\WebActionsCaller.
Почему мидлварь? почему не RequestHandlerInterface?
Единственный случай, когда WebActionsCaller хэндлит следующую мидлварь - это когда выполняется условие (!method_exists($controller, $action)).
А правильно ли это? Я бы поставил на то, что правильнее вываливать исключение. И уже вышестоящая мидлварь, вызывающая роутер, решит, что будет дальше - пустить исключение вверх или запустить следующий $handler
источник

А

Алексей R in Yii Framework 3
WebActionsCaller не должен навязывать стандартное поведение на пропуск к следующему хендлеру в случае отсутствия экшена у контроллера. Тут полюбому исключение
источник

А

Алексей R in Yii Framework 3
и в этом исключении, кстати, не плохо бы передавать последнюю версию запроса
источник

DS

Dmitriy S in Yii Framework 3
милтварь, потому что должна работать в стеке. То, что она последней обычно вызывается, это не всегда так может быть. Она может быть обернута другими мидлтварями, которые что-то еще делают с риспонсом.
источник

DS

Dmitriy S in Yii Framework 3
А хендлер следующей мидлтвари может быть вызван из экшина
источник

А

Алексей R in Yii Framework 3
Dmitriy S
милтварь, потому что должна работать в стеке. То, что она последней обычно вызывается, это не всегда так может быть. Она может быть обернута другими мидлтварями, которые что-то еще делают с риспонсом.
так те, что её оборачивают, никак не мешают ей быть RequestHandler'ом
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
так те, что её оборачивают, никак не мешают ей быть RequestHandler'ом
Как она хендлером сможет попасть в стек роута?
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Как она хендлером сможет попасть в стек роута?
это надо спросить у @yiiliveext , который это не предусмотрел )
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
это надо спросить у @yiiliveext , который это не предусмотрел )
Не вижу просто смысла в этом. Ты хочешь ограничить место экшина в стеке самым внутренним
источник

А

Алексей R in Yii Framework 3
ну да
источник

Д

Дмитрий in Yii Framework 3
Алексей R
WebActionsCaller не должен навязывать стандартное поведение на пропуск к следующему хендлеру в случае отсутствия экшена у контроллера. Тут полюбому исключение
+
источник

А

Алексей R in Yii Framework 3
а если экшен не найден, то бросать исключение
источник

А

Алексей R in Yii Framework 3
а если разработчику нужно "двигаться дальше", то он ловит это исключение и делает что хочет
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
а если экшен не найден, то бросать исключение
Если экшин не найден, то будет следующий хендлер и если экшин самый внутренний, то следующим хендлером будет NoFoundHandler
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Если экшин не найден, то будет следующий хендлер и если экшин самый внутренний, то следующим хендлером будет NoFoundHandler
не кажется, что он лишний?
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
а если разработчику нужно "двигаться дальше", то он ловит это исключение и делает что хочет
Зачем ловить исключение, если NotFound риспонс пройдет обратно по всей цепочке мидлтварей?
источник

А

Алексей R in Yii Framework 3
а, ты про NoFoundHandler который в пайплайне приложения добавляется, говоришь
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Зачем ловить исключение, если NotFound риспонс пройдет обратно по всей цепочке мидлтварей?
я бы хотел различать NoFound для роута и NoFound для экшена контроллера, на самом то деле
источник