承接 pfinalclub/asyncio-http 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

pfinalclub/asyncio-http

Composer 安装命令:

composer require pfinalclub/asyncio-http

包简介

PHP 异步系统里,一个不抢戏、却不可替代的基础件

README 文档

README

🚀 PHP 异步 HTTP 客户端库 v1.0.0
一个不抢戏、却不可替代的基础件,专为异步系统设计的轻量级 HTTP 客户端

PHP Version License Version

✨ 特性

  • 🚀 异步非阻塞 - 基于 Fiber 的现代异步执行模型
  • 🔄 连接复用 - 智能连接池管理,提高性能
  • 🛡️ 类型安全 - 严格的类型声明和边界检查
  • 📦 极简设计 - 9个核心类,职责清晰,易于理解
  • 🔧 协议完整 - 支持 HTTP/1.1 完整协议栈
  • 🧪 测试完备 - 完善的单元测试覆盖
  • 📋 代码规范 - 100% 符合 PSR-12 编码标准

🚀 快速开始

安装

composer require pfinalclub/asyncio-http

基本使用

<?php

require_once 'vendor/autoload.php';

use Pfinalclub\AsyncioHttp\Client\Http;

// GET 请求示例
$response = Http::get('https://api.example.com/users')
    ->header('Authorization', 'Bearer token')
    ->timeout(5.0)
    ->send();

// POST 请求示例
$response = Http::post('https://api.example.com/users', [
    'name' => 'John',
    'email' => 'john@example.com'
])
    ->header('Content-Type', 'application/json')
    ->send();

// 处理响应
if ($response->statusCode >= 200 && $response->statusCode < 300) {
    echo "请求成功: " . $response->body;
} else {
    echo "请求失败: " . $response->statusCode;
}

🏗️ 架构设计

本项目严格遵循极简设计原则,实现了一个功能完整的异步 HTTP 客户端库。

核心模块

模块 职责 核心类
Client/ 用户入口层 Http, RequestBuilder
Core/ 请求生命周期管理 HttpTask, HttpState, HttpScheduler
Transport/ Workerman I/O 实现 WorkermanHttpClient
Pool/ 连接复用 ConnectionPool
Protocol/ HTTP 报文边界处理 HttpMessageReader, RequestEncoder
Support/ 工具类 UrlParser, HeaderBag, Awaitable

🔧 高级用法

支持的 HTTP 方法

// GET 请求
Http::get('https://api.example.com/users')
    ->send();

// POST 请求
Http::post('https://api.example.com/users', ['name' => 'John'])
    ->send();

// PUT 请求
Http::put('https://api.example.com/users/123', ['name' => 'Jane'])
    ->send();

// PATCH 请求
Http::patch('https://api.example.com/users/123', ['email' => 'new@example.com'])
    ->send();

// DELETE 请求
Http::delete('https://api.example.com/users/123')
    ->send();

// HEAD 请求
Http::head('https://api.example.com/users')
    ->send();

// OPTIONS 请求
Http::options('https://api.example.com/users')
    ->send();

请求配置

// 设置超时时间
Http::get('https://api.example.com/users')
    ->timeout(10.0) // 10秒超时
    ->send();

// 设置多个头部
Http::get('https://api.example.com/users')
    ->header('Authorization', 'Bearer token')
    ->header('User-Agent', 'MyApp/1.0')
    ->header('Accept', 'application/json')
    ->send();

// 批量设置头部
Http::get('https://api.example.com/users')
    ->headers([
        'Authorization' => 'Bearer token',
        'User-Agent' => 'MyApp/1.0',
        'Accept' => 'application/json'
    ])
    ->send();

// 设置请求体
Http::post('https://api.example.com/users')
    ->body(['name' => 'John', 'email' => 'john@example.com'])
    ->send();

📚 API 文档

Http 类方法

方法 描述 参数
get(string $url) 创建 GET 请求 $url: 请求URL
post(string $url, mixed $body = null) 创建 POST 请求 $url: 请求URL, $body: 请求体
put(string $url, mixed $body = null) 创建 PUT 请求 $url: 请求URL, $body: 请求体
patch(string $url, mixed $body = null) 创建 PATCH 请求 $url: 请求URL, $body: 请求体
delete(string $url) 创建 DELETE 请求 $url: 请求URL
head(string $url) 创建 HEAD 请求 $url: 请求URL
options(string $url) 创建 OPTIONS 请求 $url: 请求URL

RequestBuilder 类方法

方法 描述 参数
header(string $key, string $value) 设置单个请求头 $key: 头部键, $value: 头部值
headers(array $headers) 批量设置请求头 $headers: 头部数组
body(mixed $body) 设置请求体 $body: 字符串/数组/对象
timeout(float $seconds) 设置超时时间 $seconds: 超时秒数
send() 发送请求 -

HttpResponse 类属性

属性 类型 描述
statusCode int HTTP 状态码
headers array<string, string> 响应头部
body string 响应体

🧪 测试

运行测试套件:

# 运行所有测试
composer test

# 运行测试(不生成覆盖率报告)
composer test-fast

# 代码风格检查
composer cs-check

# 代码风格修复
composer cs-fix

# 静态分析
composer phpstan

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

本项目基于 MIT 许可证开源。

代码质量

composer cs-check    # 检查代码风格
composer cs-fix      # 修复代码风格
composer phpstan     # 静态分析
composer test        # 运行测试

设计原则

  1. HTTP 是 I/O,不是抽象
  2. 策略必须在库外
  3. 状态可见,决策不可见
  4. 任何模块都可以被整体替换

明确的边界

✅ 支持的功能:

  • 异步 HTTP 客户端
  • 连接池复用
  • 请求/响应基础处理
  • 并发控制

❌ 明确禁止:

  • 重试策略
  • 中间件
  • 拦截器
  • 自动 JSON 序列化
  • HTTP Server

这正是它该在的位置。

pfinalclub/asyncio-http 适用场景与选型建议

pfinalclub/asyncio-http 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 1, 最近一次更新时间为 2026 年 01 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「http」 「client」 「async」 「workerman」 「asyncio」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 pfinalclub/asyncio-http 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 pfinalclub/asyncio-http 我们能提供哪些服务?
定制开发 / 二次开发

基于 pfinalclub/asyncio-http 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 27
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-09