Size: a a a

2020 February 19

А

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

DS

Dmitriy S in Yii Framework 3
источник

А

Алексей R in Yii Framework 3
мидлварь лучше бы оставить
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
ну хендлер то ладно
А зачем он,
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
мидлварь лучше бы оставить
Для каких целей?
источник

А

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

DS

Dmitriy S in Yii Framework 3
Диспетчер - это самый верх, он вызывается непосредственно Application, с чем ты его хочешь совмещать?
источник

А

Алексей R in Yii Framework 3
переименуй его в PipeLine и ничего не изменится
источник

DS

Dmitriy S in Yii Framework 3
Чета ты не догоняешь по ходу) После того как Application выполнит метод dispatch() диспетчера, экземпляр диспетчера больше никому не будет доступен.
источник

А

Алексей R in Yii Framework 3
а он и не должен быть никому доступен
источник

DS

Dmitriy S in Yii Framework 3
Ну так зачем тебе его метод process()?
источник

А

Алексей R in Yii Framework 3
это метод интерфейса мидлвари
источник

DS

Dmitriy S in Yii Framework 3
Там нет сейчас интерфейса мидлтвари у него, я убрал.
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
надо просто поставить его в известность
Именно так :) Вы норм штуки предлагаете. Не надо каждый раз спрашивать. Особенно если pull request занимает 10 минут.
источник

AM

Alexander Makarov in Yii Framework 3
И на совместимость пока относительно пофиг. Главное чтобы демо не ломалось больше чем на пару часов.
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
И на совместимость пока относительно пофиг. Главное чтобы демо не ломалось больше чем на пару часов.
Так что там с process делаем? Он нужен только для возможности совмещения двух отдельных приложений, я не знаю, буде ли мы такой кейс предлагать пользователям фреймворка.
источник

А

Алексей R in Yii Framework 3
В общем:

process() оставить, добавить MiddlewareInterface
Выбрасывает исключение, если стек пуст

dispatch() переименовать на handle(), вернув интерфейс RequestHandlerInterface
выбрасывает исключение, если нет $nextHandler

addMiddleware()
переименовать в add()
из конструктора убрать массив мидлварей, он только путает

зачем нужен MiddlewareInterface? чтобы помещать один трубопровод в другой, достраивать трубопровод из отрезков
Откуда они берутся?
У меня такой юзкейс: есть два приложения, отличающиеся доменом на 3-м уровне. Для каждого из них отличается низ стека пайплайна, а начало общее. Поэтому в зависимости от домена берётся нужный пайплайн и к нему достраивается пайплайн общий

зачем нужен RequestHandlerInterface? Да потому что по факту диспетчер это и есть RequestHandlerInterface - ты туда даёшь запрос, получаешь ответ
источник

DS

Dmitriy S in Yii Framework 3
Все неправильно, садись, два😏
источник

AM

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

DS

Dmitriy S in Yii Framework 3
Ок, тогда пока скрываю, из конструктора мидлтвари убираю.
источник