Разница между конечным промежуточным ПО и промежуточным ПО - PullRequest
0 голосов
/ 28 апреля 2018

Источник понимания промежуточного программного обеспечения Larave

Упоминается, что существует два типа промежуточного программного обеспечения: до и после. До обработки промежуточного программного обеспечения до обработки запроса и после обработки промежуточного программного обеспечения после обработки запроса.

Но функция терминального промежуточного программного обеспечения точно такая же, как и после промежуточного программного обеспечения. Тогда в чем разница между этими двумя? Спасибо.

1 Ответ

0 голосов
/ 28 апреля 2018

Terminable Middleware запускается после того, как ответ готов и подготовлен.

After Middleware выполняется после запроса, но до подготовки ответа.

Так, например, скажем, вы хотите установить заголовок ответа для всех или группы ваших ответов, вы можете сделать это с помощью промежуточного программного обеспечения. Потому что вам нужно установить заголовок после того, как вы обработаете запрос, но перед тем, как вернуть ответ. Однако, если вы хотите сохранить данные сеанса в хранилище, вы можете использовать промежуточное промежуточное программное обеспечение.

Это метод завершения в TerminableInterface:

/**
 * Terminates a request/response cycle.
 *
 * Should be called after sending the response and before shutting down the kernel.
 */
public function terminate(Request $request, Response $response);

Вы получаете объект запроса и ответа в методе terminate промежуточного программного обеспечения Terminable, но изменение ответа не вступит в силу, поскольку ответ уже был возвращен.

...