codebr/http-flow 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

Latest Version on Packagist Software License

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_AGENT em User-Agent.
  • Suporte a JSON: Deteta e decodifica automaticamente corpos de requisição em JSON.
  • Globais Customizadas: Disponibiliza variáveis como $_PUT, $_PATCH e $_DELETE.
  • Filtros Inteligentes: Métodos only(), except() e input() 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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-20