[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PSR-7
Страницы: 1, 2, 3, 4, 5, 6, 7
chee
Цитата (Arh @ 22.12.2017 - 21:58)
а потом они поняли что нет такой страницы и решили вернуть страницу 404, а это другая цепочка.

Это не другая цепочка, это мидлвар на уровень выше.


<?php
class
HttpExceptionMiddleWare
{
public function handle($request, $response, $next)
{
try {
return $next->handle($request, $response);
} catch (HttpException $ex) {
$response->withStatus($ex->getCode());
$response->getBody()->write($ex->getMessage());

return $response;
}
}
}


class NewsMiddleware
{
public function handle($request, $response, $next)
{
$news = News::findById($request->getQueryParams()['id']);

if (!$news) {
throw new PageNotFound;
}

$response->getBody()->write(json_encode($news));

return $response;
}
}


Сначала будет запущен HttpExceptionMiddleWare, затем он с помощью

return $next->handle($request, $response);


Запустит NewsMiddleware

Если у тебя в очереди еще будет мидлвары после новостей, что бы их запустить нужно будет вызвать return $next->handle($request, $response) в NewsMiddleware

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.