Lithe\App

A classe `Lithe\App` é o ponto de entrada principal para a aplicação no Lithe. Ela gerencia o ciclo de vida da aplicação, configurações de middleware, rotas e responde a requisições HTTP.

Descrição

A classe Lithe\App é a base para criar e gerenciar uma aplicação no Lithe. Ela fornece métodos para configurar middleware, definir rotas, tratar exceções HTTP e iniciar a aplicação. Através da App, você pode gerenciar a configuração da aplicação, controlar o fluxo de execução e fornecer uma resposta para as requisições HTTP recebidas.

Aqui está um exemplo básico de como criar e usar uma instância de Lithe\App:

$app = new \Lithe\App;

// Middleware global
$app->use(function($req, $res, $next) {
    $next();
});

// Rota para '/hello'
$app->get('/hello', function($req, $res) {
    $res->send('Olá, Mundo!');
});

// Resposta para erro HTTP 400
$app->httpException(400, function($req, $res) {
    $res->send('Página não encontrada');
});

// Resposta para erro HTTP 500
$app->httpException(500, function($req, $res, $exception) {
    $res->send('Erro Interno do Servidor');
});

// Inicia a aplicação
$app->listen();

Métodos

METHOD(string $path, callable|array ...$handler): void

  • Descrição: Define uma rota para um método HTTP específico.
  • Parâmetros:
    • $path - Caminho da rota.
    • $handler - Manipuladores (callbacks) para a rota.
  • Métodos Disponíveis: GET, POST, PUT, DELETE, HEAD, PATCH
$app->get('/welcome', function($req, $res) {
    $res->send('Bem-vindo!');
});

$app->post('/submit', function($req, $res) {
    $res->send('Formulário Enviado');
});

use(string|callable|Router|array ...$middleware): void

  • Descrição: Adiciona um middleware à aplicação. Pode ser uma função de callback, uma string para um caminho de middleware, um objeto Router, ou um array de middlewares.
  • Parâmetros:
    • $middleware - Middleware ou roteador a ser adicionado.
$app->use('/api', function($req, $res, $next) {
    // Lógica do middleware
    $next();
});

set(string $key, mixed $value): void**

  • Descrição: Define uma configuração global para a aplicação.
  • Parâmetros:
    • $key - Chave da configuração.
    • $value - Valor da configuração.
$app->set('view engine', 'blade');

httpException(int $status, callable $handler): void

  • Descrição: Define um manipulador específico para exceções HTTP com base no código de status.
  • Parâmetros:
    • $status - Código de status HTTP para o qual o manipulador será definido.
    • $handler - Manipulador para tratar a exceção HTTP.
$app->httpException(404, function($req, $res) {
    $res->status(404)->send('Página Não Encontrada');
});

listen(): void

  • Descrição: Permite que a aplicação ouça e responda às solicitações HTTP.
    $app->listen();

route(string $path): object

  • Descrição: Cria um objeto para definir rotas com um prefixo específico.
  • Parâmetros:
    • $path - Prefixo da rota.
  • Retorno: Um objeto anônimo para definir rotas com o prefixo fornecido.
$app->route('/api')
    ->get(function($req, $res) {
          $res->send('Lista de Usuários');
    });