Так что я немного покопался и, похоже, могу только найти информацию о SlimFramework 2, ничего больше о 3.
Моя проблема заключается в следующем:
return $res->withStatus(401)->withHeader('Content-type','application/json')->write(json_encode(array(
'Error'=>'Your session has timed out.',
'X-SessionToken' => $session_uuid,
'Server date/time' => date('c'),
'Last activity' => Session::sharedInstance()->last_activity(),
'Path' => $path
)));
по-прежнему возвращает статус 200, с типом контента по-прежнему установлено значение text / html, но все мое тело там. Какие-нибудь мысли? Я попытался просмотреть документацию PSR-7 в функции write (), чтобы узнать, возможно ли после этого она устанавливает заголовки и статус обратно в значения по умолчанию, но ничего не увидела.
Так что после некоторого поиска и отладки я обнаружил, что он не устанавливает заголовки, потому что он устанавливает их только в случае! Headers_sent (), который возвращается как ложный. Это означало, что у меня был дополнительный выход где-то. Оказалось, в самом низу моего PHP-файла, что весь мой код был в моей, после закрытия была лишняя строка?>. Такая любительская ошибка.
Других решений пока нет …