Size: a a a

2020 August 24

AM

Alexander Makarov in Yii Framework 3
Если задача в том, что надо разложить в три разных места, то да. Тут не выйдет.
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
Взять можно откуда угодно. Вопрос в том, куда сложить.
а вот в контроллере надо уже со всех трёх получить значения и решить по приоритету
источник

AM

Alexander Makarov in Yii Framework 3
Гипотетически да, такое возможно. На практике не могу представить...
источник

А

Алексей R in Yii Framework 3
на практике такое есть но решается не одной мидлварью )
источник

AM

Alexander Makarov in Yii Framework 3
Я бы не размазывал логику, а плюнул бы и написал свой middleware.
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
на практике такое есть но решается не одной мидлварью )
А что за кейс?
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
А что за кейс?
посмотри php.net :/
источник

А

Алексей R in Yii Framework 3
там куки/сессия + параметр из Path и что-то ещё было (не помню)
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
посмотри php.net :/
В плане чего посмотреть?
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
В плане чего посмотреть?
выбор языка в документации
источник

DS

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

Я тут наткнулся на доку от Expressive: https://docs.zendframework.com/zend-expressive/v3/cookbook/passing-data-between-middleware/

Мне понравился подход с использованием имени класса Middleware как имени параметра. Может у себя применим?

Это как раз про yiisoft/auth...
Есть плюсы и минусы. С минусов при замене реализации придется переписывать все получение атрибутов
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Есть плюсы и минусы. С минусов при замене реализации придется переписывать все получение атрибутов
не придётся если использовать \name\space\className::class
Или
прям ваще замена-замена? :)
В этом случае эти поля всё-равно дложны быть настраиваемыми
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
выбор языка в документации
Ну так это отдельный middleware с кастомной логикой, пожалуй + вероятно, ещё и в базу сгонять... там fallback ещё есть... тут стандартный не сработает.
источник

AM

Alexander Makarov in Yii Framework 3
Если предусмотрен интерфейс, то брать его имя.
источник

AM

Alexander Makarov in Yii Framework 3
Тогда замена реализации норм будет.
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
не придётся если использовать \name\space\className::class
Или
прям ваще замена-замена? :)
В этом случае эти поля всё-равно дложны быть настраиваемыми
Придетмс, есть
$request->withAttribute(\Yiisoft\Yii\Web\Middleware\Csrf::class, ['_csrf' => 'fdsfdsffwerwrewr']);
Хочу поменять на свою реализацию
$request->withAttribute(\Yiiliveext\CsrfMiddleware::class, ['_csrf' => 'fdsfdsffwerwrewr']);
источник

AM

Alexander Makarov in Yii Framework 3
В общем случае нет никакой гарантии что два разных middleware дадут одинаковое значение в request.
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
В общем случае нет никакой гарантии что два разных middleware дадут одинаковое значение в request.
Ну я уже как бы получаю везде по старой реализации
$request->getAttribute(\Yiisoft\Yii\Web\Middleware\Csrf::class)
источник

DS

Dmitriy S in Yii Framework 3
Везде придется заменять старое имя класса на новое\
источник

AM

Alexander Makarov in Yii Framework 3
да
источник