Size: a a a

2020 March 30

AM

Alexander Makarov in Yii Framework 3
@xepozz

> Нужно yii-web/User раздробить. это как бы не совсем user

Как именно?

> \Yiisoft\Yii\Web\ServerRequestFactory уносим в yii/http?

Нет.

> @samdark зачем ты это сделал? теперь при крэше не будет посылаться AfterRequest и debugger будет сбоить

- https://github.com/yiisoft/docs/blob/master/guide/en/tutorial/using-yii-with-swoole.md
- https://github.com/yiisoft/docs/blob/master/guide/en/tutorial/using-yii-with-roadrunner.md

Если есть идеи как и то и то сохранить, выслушаю.

> стоит ли yii-web/Application быть в web? что есть web, а что http, а что rest? нужно куда-то записать это всё, если еще нет. мне кажется, здесь есть проблемы с неймингом+расположением классов

- Web - всё, что нужно когда мы работаем с web-приложением. Пайплайн, middleware и другие веб-only PSR + middleware.
- HTTP - низкоуровневые штуки для работы с HTTP: заголовки, статусы.
- REST - то, что нужно только для REST API.
источник

AM

Alexander Makarov in Yii Framework 3
Да, сейчас всё буду смотреть.
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
@xepozz

> Нужно yii-web/User раздробить. это как бы не совсем user

Как именно?

> \Yiisoft\Yii\Web\ServerRequestFactory уносим в yii/http?

Нет.

> @samdark зачем ты это сделал? теперь при крэше не будет посылаться AfterRequest и debugger будет сбоить

- https://github.com/yiisoft/docs/blob/master/guide/en/tutorial/using-yii-with-swoole.md
- https://github.com/yiisoft/docs/blob/master/guide/en/tutorial/using-yii-with-roadrunner.md

Если есть идеи как и то и то сохранить, выслушаю.

> стоит ли yii-web/Application быть в web? что есть web, а что http, а что rest? нужно куда-то записать это всё, если еще нет. мне кажется, здесь есть проблемы с неймингом+расположением классов

- Web - всё, что нужно когда мы работаем с web-приложением. Пайплайн, middleware и другие веб-only PSR + middleware.
- HTTP - низкоуровневые штуки для работы с HTTP: заголовки, статусы.
- REST - то, что нужно только для REST API.
> Если есть идеи как и то и то сохранить, выслушаю.
Есть, нужно сделать событие вроде ResponseShutdown(название придумай) и после эмиттера вызывать его методом приложения $application->responseShutdown(), по нему будет шатдаун дебаггера, да и еще чего полезного привязать можно к этому событию.
источник

AM

Alexander Makarov in Yii Framework 3
AfterRequest и есть responseShutdown
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
> Если есть идеи как и то и то сохранить, выслушаю.
Есть, нужно сделать событие вроде ResponseShutdown(название придумай) и после эмиттера вызывать его методом приложения $application->responseShutdown(), по нему будет шатдаун дебаггера, да и еще чего полезного привязать можно к этому событию.
Похоже, нужны приоритеты для нашего диспетчера событий. Чтобы дебагер останавливался после всех юзерских триггеров
источник

AM

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

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
AfterRequest и есть responseShutdown
Нет, AfterRequest вызывается до того как ответ отправлен в эмиттер
источник

DS

Dmitriy S in Yii Framework 3
Есть вещи, которые нужно делать каждый запрос, но после того как ответ уже отправлен пользователю.
источник

AM

Alexander Makarov in Yii Framework 3
м... предлагаешь ввести ignore_user_abort(false)?
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
м... предлагаешь ввести ignore_user_abort(false)?
Ну, мы это с Алексеем уже обсуждали, это возможно, так как у нас теперь рендеринг в эмиттере. Но суть не в этом, суть в том чтобы не задерживать ответ обработкой неких вещей в афтерриквест
источник

DS

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

AM

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

А

Алексей R in Yii Framework 3
Алексей R
приходится
return (new MiddlewareDispatcher($container))
   ->addMiddleware($container->get(Router::class))
   ->addMiddleware($container->get(SubFolder::class))
   ->addMiddleware($container->get(SessionMiddleware::class))
   ->addMiddleware($container->get(ErrorCatcher::class));
вместо
return (new MiddlewareDispatcher($container))
   ->addMiddleware(Router::class)
   ->addMiddleware(SubFolder::class)
   ->addMiddleware(SessionMiddleware::class)
   ->addMiddleware(ErrorCatcher::class);
> Специально для Дмитрия, который возмущался, что у меня мидлтвари не лениво грузятся. Уже все лениво😉

не только Дмитрия (хоть там и не про роуты, но пайплайн должен также работать)
источник

DS

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

AM

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

DS

Dmitriy S in Yii Framework 3
@samdark, ну ты и бюрократ, еще и всех ревьюеров на пр в роутере позвал) Что там ревьюить, там тридцать строчек и те на треть тесты, остально с класса роута скопировано.
источник

DS

Dmitriy S in Yii Framework 3
Ленивая загрузка мидлтварей как в роуте
источник

AM

Alexander Makarov in Yii Framework 3
Я про конкретную строчку.
источник

AM

Alexander Makarov in Yii Framework 3
Ты развернул массив middlewares
источник

А

Алексей R in Yii Framework 3
чтобы вместо for от обратного юзать foreach
источник