В моем приложении Slim 3 я определил промежуточное программное обеспечение, которое добавляет к моему ответу собственный заголовок. ПО промежуточного слоя вызывается до вызова функции маршрутизации индекса. Если возникает исключение, вызывается функция обработчика ошибок, но кажется, что объект $response, переданный этой функции, является новым объектом Response, а не тем, который настроен в моем промежуточном программном обеспечении. Другими словами, в моем ответе нет моего пользовательского заголовка.
Правильно ли это поведение?
# Middleware
$app->add(function ($request, $response, $next) {
$response = $response->withHeader('MyCustomHeader', 'MyCustomValue');
return $next($request, $response);
});
# Error handling
$container['errorHandler'] = function ($container) {
return function ($request, $response, $exception) use ($container) {
return $response->write('ERROR');
};
};
# Index
$app->get('/index', function(Request $request, Response $response) {
throw new exception();
return $response->write('OK');
});