Response

O objeto `Response` no Lithe oferece métodos poderosos para manipular e enviar respostas HTTP, proporcionando flexibilidade no desenvolvimento de aplicações web.

Métodos

render(string $file, ?array $data = [])

  • Descrição: Renderiza uma visualização usando o mecanismo de visualização configurado.
  • Parâmetros:
    • file - Nome do arquivo de visualização.
    • data - Dados a serem passados para a visualização.
  • Exceções: Lança \InvalidArgumentException se o mecanismo de visualização não estiver configurado corretamente.
$app->get('/welcome', function($req, $res) {
    return $res->render('welcome', ['user' => 'John Doe']);
});

getStatusCode(): ?int

  • Descrição: Retorna o código de status HTTP atual da resposta.
  • Retorno: int|null
$app->get('/status', function($req, $res) {
    $status = $res->getStatusCode();
    // Exemplo: $status pode ser 200
});

view(string $file, ?array $data = [])

  • Descrição: Renderiza uma visualização. Alias para o método render.
  • Parâmetros:
    • file - Nome do arquivo de visualização.
    • data - Dados a serem passados para a visualização.
$app->get('/profile', function($req, $res) {
    return $res->view('profile', ['name' => 'Jane Doe']);
});

send(mixed $data)

  • Descrição: Envia uma resposta, que pode ser dados serializados em JSON ou texto.
  • Parâmetros:
    • data - Dados a serem enviados como resposta.
$app->get('/data', function($req, $res) {
    return $res->send('Hello, World!');
});

redirect(string $url, bool $permanent = false)

  • Descrição: Redireciona para uma URL usando um redirecionamento HTTP.
  • Parâmetros:
    • url - URL para redirecionamento.
    • permanent - Se o redirecionamento é permanente (código 301) ou temporário (código 302).
$app->get('/old-page', function($req, $res) {
    return $res->redirect('/new-page', true);
});

json(mixed $data)

  • Descrição: Envia uma resposta em formato JSON.
  • Parâmetros:
    • data - Dados a serem enviados como resposta JSON.
$app->get('/api/data', function($req, $res) {
    return $res->json(['status' => 'success', 'data' => [1, 2, 3]]);
});

status(int $statusCode): self

  • Descrição: Define o código de status HTTP para a resposta.
  • Parâmetros:
    • statusCode - Código de status HTTP.
  • Retorno: O objeto atual Response para encadeamento de métodos.
$app->get('/not-found', function($req, $res) {
    return $res->status(404)->send('Page Not Found');
});

setHeader(string $name, ?string $value = null): self

  • Descrição: Define um cabeçalho HTTP na resposta.
  • Parâmetros:
    • name - Nome do cabeçalho.
    • value - Valor do cabeçalho (ou null para cabeçalhos sem valor).
  • Retorno: O objeto atual Response para encadeamento de métodos.
$app->get('/headers', function($req, $res) {
    return $res->setHeader('X-Custom-Header', 'Value')
        ->send('Header set!');
});

setHeaders(array $headers): self

  • Descrição: Define múltiplos cabeçalhos de uma vez.
  • Parâmetros:
    • headers - Array associativo de cabeçalhos.
  • Retorno: O objeto atual Response para encadeamento de métodos.
$app->get('/headers', function($req, $res) {
    return $res->setHeaders([
        'X-Custom-Header' => 'Value',
        'X-Another-Header' => 'Another Value'
    ])->send('Headers set!');
});

download(string $file, ?string $name = null, array $headers = [])

  • Descrição: Envia um arquivo para download.
  • Parâmetros:
    • file - Caminho para o arquivo.
    • name - Nome do arquivo para download.
    • headers - Cabeçalhos adicionais.
$app->get('/download', function($req, $res) {
    return $res->download('/path/to/file.zip', 'file.zip');
});

file(string $file, array $headers = [])

  • Descrição: Exibe um arquivo no navegador.
  • Parâmetros:
    • file - Caminho para o arquivo.
    • headers - Cabeçalhos adicionais.
$app->get('/view-file', function($req, $res) {
    return $res->file('/path/to/file.pdf');
});

cookie(string $name, $value, array $options = []): self

  • Descrição: Define um novo cookie.
  • Parâmetros:
    • name - Nome do cookie.
    • value - Valor do cookie.
    • options - Opções para configurar o cookie.
  • Retorno: O objeto atual Response para encadeamento de métodos.
$app->get('/set-cookie', function($req, $res) {
    return $res->cookie('user', 'John Doe', [
      'expires' => time() + 3600
    ]);
});

clearCookie(string $name): self

  • Descrição: Remove um cookie.
  • Parâmetros:
    • name - Nome do cookie a ser removido.
  • Retorno: O objeto atual Response para encadeamento de métodos.
$app->get('/clear-cookie', function($req, $res) {
    return $res->clearCookie('user');
});

type(string $mimeType): self

  • Descrição: Define o tipo MIME para a resposta.
  • Parâmetros:
    • mimeType - Tipo MIME a ser definido.
  • Retorno: O objeto atual Response para encadeamento de métodos.
$app->get('/json', function($req, $res) {
    return $res->type('application/json')->json([
      'status' => 'success'
    ]);
});