codebr/http-flow
最新稳定版本:v0.1.1
Composer 安装命令:
composer require codebr/http-flow
包简介
Uma lib leve para manipulação de Request e Response com suporte total a verbos HTTP./A lightweight library for handling Requests and Responses with full support for HTTP verbs.
README 文档
README
Uma biblioteca PHP leve, moderna e robusta para manipulação de requisições HTTP. Projetada para ser simples, testável e independente de frameworks pesados.
🚀 Funcionalidades
- Normalização de Headers: Transforma automaticamente
HTTP_USER_AGENTemUser-Agent. - Suporte a JSON: Deteta e decodifica automaticamente corpos de requisição em JSON.
- Globais Customizadas: Disponibiliza variáveis como
$_PUT,$_PATCHe$_DELETE. - Filtros Inteligentes: Métodos
only(),except()einput()para manipulação limpa de dados. - Testabilidade: Arquitetura pronta para testes unitários com injeção de dependências.
- Request Handling: Suporte total a JSON, Query Params e Body.
- Fluent Response: Interface fluida para retornos JSON, HTML e estados de erro.
- CORS Automático: Gestão de Preflight (OPTIONS) com configuração via ENV.
- Arquivos de Upload: Suporte a arquivos de upload via
multipart/form-data. - Arquitetura Limpa: Configurações desacopladas e prontas para testes unitários.
- Suporte a Uploads: Interface simplificada para gestão de ficheiros (
$_FILES).
HTTP_FLOW_ALLOW_ORIGIN=https://meuapp.com HTTP_FLOW_ALLOW_METHODS=GET,POST,PUT,DELETE,OPTIONS HTTP_FLOW_ALLOW_HEADERS=Content-Type,Authorization,X-Requested-With HTTP_FLOW_MAX_AGE=3600 HTTP_FLOW_ALLOW_CREDENTIALS=true
📦 Instalação
Pode instalar a biblioteca via Composer:
composer require codebr/http-flow use Codebr\HttpFlow\Request; $request = new Request(); // Obter o método e a URI echo $request->getMethod(); // GET, POST, PUT... echo $request->getUri(); // /users/profile // Busca 'id' em qualquer lugar da requisição, com valor padrão null $id = $request->input('id'); // Busca com valor padrão se não existir $page = $request->input('page', 1); // Retorna apenas os campos desejados $userData = $request->only(['name', 'email', 'password']); // Retorna tudo, exceto campos sensíveis $updateData = $request->except(['is_admin', 'id']); $headers = $request->getHeaders(); $userAgent = $headers['User-Agent'] ?? 'Unknown'; # Origem permitida (padrão: *) HTTP_FLOW_ALLOW_ORIGIN=[https://meuapp.com](https://meuapp.com) # Métodos permitidos (padrão: GET,POST,PUT,DELETE,OPTIONS) HTTP_FLOW_ALLOW_METHODS=GET,POST,PUT,DELETE # Headers permitidos HTTP_FLOW_ALLOW_HEADERS=Content-Type,Authorization,X-Requested-With # Tempo de cache do Preflight em segundos (padrão: 86400) HTTP_FLOW_MAX_AGE=3600 # Permitir Cookies/Credenciais (true/false) HTTP_FLOW_ALLOW_CREDENTIALS=true use Codebr\HttpFlow\Response; $response = new Response(); // Retorno JSON com Status Code 201 $response->json(['message' => 'Criado com sucesso'], 201)->send(); // Retorno HTML $response->html('<h1>Bem-vindo</h1>')->send(); use Codebr\HttpFlow\Request; use Codebr\HttpFlow\Response; $request = new Request(); if ($request->getMethod() === 'OPTIONS') { (new Response())->options()->send(); exit; } use Codebr\HttpFlow\Request; use Codebr\HttpFlow\Response; $request = new Request(); if ($request->getMethod() === 'OPTIONS') { (new Response())->options()->send(); exit; } $request = new \Codebr\HttpFlow\Request(); // Pega dados do JSON ou POST de forma segura $data = $request->only(['email', 'username']); // Busca um campo específico com fallback $search = $request->input('search', 'default_term'); Gestão de CORS (Preflight) Para resolver requisições OPTIONS automaticamente usando as configurações do seu .env: if ($request->isPreflight()) { (new Response())->options()->send(); exit; Testabilidade $request = new Request( server: ['REQUEST_METHOD' => 'POST'], body: ['user' => 'test'] );
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-20