Size: a a a

2020 September 28

АН

Александр Некрасов... in Yii Framework 3
и там уже пытается инжектор отработать, но бросает исключение, если не находит что нужно, к примеру ResponseInterface
источник

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
Но, с другой стороны, а чем плохи кложи с __invoke?
не плохи, но если реализует интерфейс MiddlewareInterface, нужно ее как кложу или process отработать ?
источник

DS

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

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
Но, с другой стороны, а чем плохи кложи с __invoke?
и тогда в чем разница между классом который реализует интерфейс  MiddlewareInterface и клссом где __invoke ?
источник

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
Они все равно в обертку заворачиваются. Можешь сделать тест, который ломает текущее поведение с помощью таких клож?
источник

АН

Александр Некрасов... in Yii Framework 3
такая миддлеваре не работает
источник

АН

Александр Некрасов... in Yii Framework 3
пытается заинжектить из __invoke, но там ResponseInterface которая не определена
источник

DS

Dmitriy S in Yii Framework 3
Мне помнится, мы уже разбирали этот кейс и ты даже пр делал, чтобы все работало
источник

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
Мне помнится, мы уже разбирали этот кейс и ты даже пр делал, чтобы все работало
это в MiddlewareDispacher в yii-web
источник

АН

Александр Некрасов... in Yii Framework 3
такой же фикс, который я сделал в route
источник

DS

Dmitriy S in Yii Framework 3
Ладно, давай я попробую в роут эту мидлтварь добавить и посмотрю как лучше решить.
источник

АН

Александр Некрасов... in Yii Framework 3
если передан объект, и реализует MiddlewareInterface, то отрабатывает его как Middleware, если нет, уже дальше обарачивается и отрабатывает
источник

DS

Dmitriy S in Yii Framework 3
Александр Некрасов
если передан объект, и реализует MiddlewareInterface, то отрабатывает его как Middleware, если нет, уже дальше обарачивается и отрабатывает
Я понимаю где проблема, но это скорее редкий случай, чтобы одновременно и __invoke и MiddlewareInterface. И оно будет работать если передать ->addMIddleware(fn () => CorsMiddlware(...))
источник

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
Я понимаю где проблема, но это скорее редкий случай, чтобы одновременно и __invoke и MiddlewareInterface. И оно будет работать если передать ->addMIddleware(fn () => CorsMiddlware(...))
согласен, но попался такой случай ), на сколько fn() => new CorsMiddlewae() дешевле, чем сразу обьект передать ?, если в конструкторе ничего не тянится
источник

DS

Dmitriy S in Yii Framework 3
Александр Некрасов
согласен, но попался такой случай ), на сколько fn() => new CorsMiddlewae() дешевле, чем сразу обьект передать ?, если в конструкторе ничего не тянится
Ненамного, но не у всех в конструкторе ничего не тянется. А если у тебя несколько сотен роутов, да по пару-тройке мидлтварей, это уже прилично может набежать.
источник

АН

Александр Некрасов... in Yii Framework 3
ну если в конструкторе есть зависимости, согласен, но если нету, то разницы не думаю что будет, тогда запретить передачу объекта вообще, и указать в доке, что стринг, или кложа, и уже нужно сетапить в контейнере (если стринг)
источник

DS

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

АН

Александр Некрасов... in Yii Framework 3
Dmitriy S
Та я думаю, что объект-кложа - это норм. Можно этот кейс запретить просто
я же не говорю что плохо )
источник

АН

Александр Некрасов... in Yii Framework 3
можно запретить объекты с реализацией интерфейса MiddlewareInterface
источник

DS

Dmitriy S in Yii Framework 3
Ну вот и запретить кложи, которые реализуют MiddlewareInterface
источник