Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Resposta HTTP

Guilherme Nascimento edited this page Jan 16, 2026 · 15 revisions

Nota: Esta documentação abrange o Inphinit 1.0. Para a documentação da versão 2.1, visite: https://inphinit.github.io/pt/docs/http/response.html

Para usar primeiro adicione Inphinit\Http\Response no seu arquivo, por exemplo:

<?php
use Inphinit\Http\Response;

Adicionando um cabeçalho:

<?php
namespace Controller;

use Inphinit\Http\Response;

class Examplo
{
    public function foo()
    {
        Response::putHeader('X-Custom-Header', 'foo');

        return 'Foo';
    }
}

Adicionando múltiplos cabeçalhos:

public function foo()
{
    Response::putHeader('X-Custom-Header', 'foo');
    Response::putHeader('Content-type', 'text/html; charset=UTF-8');

    return 'Foo';
}

Remove um cabeçalho:

public function foo()
{
    Response::putHeader('X-Custom-Header', 'foo');

    if (...condição...) {
        Response::remove('X-Custom-Header');
    }

    return 'Foo';
}

Os cabeçalhos podem ser adicionados antes ou depois dos Views, já que ambos são apenas executado após o App::exec ser chamado (veja boot/start.php), exemplo:

public function foo()
{
    View::render('meuview');
    Response::putHeader('X-Custom-Header', 'foo');
}

Cache HTTP

Você pode definir o Cache no HTTP usando Response::cache(segundos):

public function foo()
{
    Response::cache(3600); //Uma hora de cache
    View::render('meuview');
}

Prevenindo o cache HTTP:

public function foo()
{
    Response::cache(0); //prevenindo o cache
    View::render('meuview');
}

Content-Type

Para definir o cabeçalho Content-Type você pode usar:

Response::putHeader('Content-type', 'text/xml');

Ou simplesmente:

Response::type('text/xml');

Com charset:

Response::type('text/xml; charset=UTF-8');

Resposta Json

<?php
namespace Controller;

use Inphinit\Http\Response;

class Examples
{
    public function foo()
    {
        Response::type('application/json');

        return json_encode(array(
            'id' => 1,
            'foo' => 'bar'
        ));
    }
}

Convertendo um Array para Xml

Este recurso é Experimental

<?php
namespace Controller;

use Inphinit\Http\Response;
use Inphinit\Experimental\Dom\Document;

class Examples
{
    public function foo()
    {
        Response::type('text/xml');

        $myarray = array(
            'root' => array(
                'id' => 1,
                'foo' => 'bar'
            )
        );

        $xml = new Document;
        $xml->fromArray($myarray);
        return $xml;
    }
}

Forçar o download da resposta

Força o download da página gerada, você pode usar:

Response::download('page.html');

No primeiro parâmetro você pode definir o nome que o arquivo vai receber no download

Trocando o código de status do HTTP

Você pode trocar usando o método Inphinit\Http\Response::status, por exemplo 403 Forbidden:

Response::status(403);

Quando você usa o método Inphinit\App::stop, por exemplo:

<?php
namespace Controller;

use Inphinit\App;
use Inphinit\Http\Response;

class Examples
{
    public function foo()
    {
        App::stop(403); //O que vier depois desta linha não será executado

        Response::status(201); //Isto não será executado
        View::render('myview'); //Isto não será executado
        return 'Foo'; //Isto não será executado
    }

Este método executa o exit;

Evento

O Response::status(código), Response::putHeader('...', ..., código); e App::stop(código) disparam o evento changestatus, para interceptar o evento você pode usar:

App::on('changestatus', function ($code, $msg) {
    //Algo aqui...
});

Para mais detalhes veja Eventos

Clone this wiki locally