Resposta HTTP
Além dos recursos nativos do PHP, existem também recursos específicos adicionais para facilitar o tratamento de respostas HTTP.
Definir ou remover cabeçalhos de resposta
É Response::header() semelhante à função nativa header(), com a diferença que faz uma checagem nos valores enviados. Exemplo:
use Inphinit\Http\Response;
Response::header('Foo', 'bar');
Defina ou remova o cabeçalho Content-Type.
Definindo Content-Type como application/xml:
use Inphinit\Http\Response;
Response::type('application/xml');
Configurando Content-Type com o text/css conjunto de caracteres iso-8859-1:
use Inphinit\Http\Response;
Response::type('text/csv', 'iso-8859-1');
Alguns tipos possuem atalhos:
| Uso | Equivalente |
|---|---|
Response::type('bson') |
Response::type('application/bson') |
Response::type('json') |
Response::type('application/json') |
Response::type('xml') |
Response::type('application/xml') |
Response::type('atom') |
Response::type('application/atom+xml') |
Response::type('rss') |
Response::type('application/rss+xml') |
Download forçado
Forçando o download da página atual:
use Inphinit\Http\Response;
Response::download('page.html');
Configurar o Content-Length pode ajudar os gerenciadores de download a fornecer um tempo estimado de conclusão do download, o que pode ser feito definindo o segundo parâmetro:
use Inphinit\Http\Response;
Response::download('report.pdf', 1000);
Código de status
Obtenha o código de status de resposta atual:
use Inphinit\Http\Response;
echo Response::status();
Definir código de status da resposta:
use Inphinit\Http\Response;
Response::status(201);
Defina o código de status da resposta e retorne o código anterior:
use Inphinit\Http\Response;
$previous = Response::status(204);
echo $previous;
É possível usar as constantes disponíveis em Inphinit\Http\Status (veja: Códigos de Resposta):
use Inphinit\Http\Response;
use Inphinit\Http\Status;
// Bad Request
Response::status(Status::HTTP_BAD_REQUEST);
Defina os cabeçalhos de cache ou não cache.
Defina o cache em segundos
O cache expira em 3600 segundos:
use Inphinit\Http\Response;
Response::cache(3600);
Sem cache
Usar -1 sem cache :
use Inphinit\Http\Response;
Response::cache(-1);
Configurar cache com descrições textuais de data e hora em inglês
O cache expira em 1 semana:
use Inphinit\Http\Response;
Response::cache('+1 week');
Mais detalhes em https://www.php.net/manual/en/datetime.formats.php#datetime.formats.relative.