Download the PHP package laybot/request-sdk without Composer

On this page you can find all versions of the php package laybot/request-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package request-sdk

LayBot / Request-SDK · PHP

通用 PHP 网络通信与流式请求基础库
稳定 · 易用 · 框架无关 · 面向企业项目与上层 SDK 的统一网络底座

HTTP · Async HTTP · SSE · NDJSON · Raw Stream · WebSocket · Upload · Download

Laybot MPA PHP Version

⚡ 关于该项目: 本库是 Laybot - 现代 MPA 工程平台 后端生态的核心网络通信底座。从企业级 Web 交付到大模型流式通信,历经真实高并发场景打磨,现作为独立组件完全开源


1. 全链路的企业级工程化:关于 LayBot 体系

本 SDK 脱胎于 Laybot (laybot.cn) 生态。

在实际业务中,我们致力于为企业级 Web 交付打造现代 MPA(多页面)工程平台。为了让老旧资产(如 jQuery/layui 项目)重获新生,同时支持 AOT 预编译、AI 工程协作、GEO/SEO 流量引擎以及商业级私有化交付,我们在前端构建了强大的响应式指令与页面级隔离体系。

而在后端的灵语智教 AI 引擎建设中(面向教学问答、作文精批、高并发结构化题库等场景),我们需要在 PHP 业务系统与各大模型厂商之间,建立一条支持复杂流式输出(SSE/NDJSON/WebSocket)、连接稳定、支持背压控制的“高速公路”。

为此,我们将 LayBot 通用能力逐步整理为可独立复用的系列 SDK:

不仅服务于 Laybot 平台自身,更期望成为 PHP 开发者接入现代 API 与 AI 大模型时的首选网络基建。如果你对现代 MPA 平台、兼容 layui 生态的重构或桌面端商业交付感兴趣,欢迎访问 Laybot 官方网站。


2. 项目简介

在真实服务端项目中,网络请求通常不只是简单调用一次 curl。

常见需求包括:

Guzzle、Workerman 等组件分别提供了优秀的底层能力,但业务项目通常仍需要统一处理:

laybot/request-sdk 的目标,就是将这些网络层能力收敛成一个:

的 PHP 网络通信基础库。

它解决的不是单纯的“能不能发请求”,而是:

如何将请求安全、稳定、可控地发送出去,并以统一方式接收、解析和管理响应生命周期。


3. 主要能力

laybot/request-sdk 提供:


4. 框架支持

request-sdk 不是 Webman 专用库。

同步能力基于标准 PHP 和 Guzzle,可用于绝大多数服务端 PHP 框架:

4.1 能力兼容矩阵

运行环境 同步 HTTP 同步 SSE/流 异步 HTTP/SSE WebSocket Client
Webman / Workerman 支持 支持 支持 支持
ThinkPHP 支持 支持 需 Workerman 事件循环 需 Workerman 事件循环
Laravel 支持 支持 需 Workerman 事件循环 需 Workerman 事件循环
Symfony 支持 支持 需 Workerman 事件循环 需 Workerman 事件循环
Yii 支持 支持 需 Workerman 事件循环 需 Workerman 事件循环
PHP CLI 支持 支持 需启动 Workerman 需启动 Workerman
PHP-FPM 支持 支持,但受执行时间和网关缓冲影响 不建议 不适用
Swoole / Hyperf 可以使用同步能力 可以,但可能阻塞协程 暂无原生适配器 暂无原生适配器

4.2 同步与异步边界

同步方法始终同步执行:

异步方法始终要求有效的 Workerman 事件循环:

SDK 不会因为检测到 Webman 或 Workerman 环境而自动改变方法语义。

也就是说:

4.4 支撑完整企业级生态:Laybot MPA 与 AI 协作底座

本 SDK 已在 Laybot 现代 MPA 工程平台 及其内置的 灵语智教 AI 引擎 中历经深度生产检验,完美支撑了以下核心商业链路:

探索 Laybot MPA 平台,重掌 Web 工程控制权 🚀


5. 定位与职责边界

laybot/request-sdk 的定位是:

本库负责:

本库不负责:

如果需要统一调用 OpenAI、Gemini、Anthropic、DeepSeek、豆包 Ark、千问或火山语音,请使用:

laybot/ai-sdk

职责关系:


6. 推荐分层

这样可以避免每个上层 SDK 重复实现:


7. 运行要求

使用异步 HTTP 或 WebSocket 时,还需要:

推荐生产环境:


8. 安装

本地开发:


9. 快速开始

9.1 创建 Client

base_uri 必须是合法的 HTTP 或 HTTPS 绝对地址。

允许:

禁止:


9.2 普通 GET

get() 默认要求响应 JSON 根节点为对象或数组。

如果响应可能是字符串、数字、布尔值或 null,使用:


9.3 POST JSON

对应:


9.4 POST Form

对应:


9.5 通用请求

request() 返回:

读取响应:


10. 在不同框架中使用

10.1 ThinkPHP

Controller 中正常注入或实例化 Service 即可。


10.2 Laravel

可以在 Service Provider 中注册为 Singleton。


10.3 Symfony

可以通过 Symfony DI Container 注册。


10.4 Webman

Client 可以在 Worker 生命周期内复用。

对于不能阻塞事件循环的场景,使用明确的异步方法。


10.5 原生 CLI


11. 请求 Body

同一个请求只能使用一种 Body 模式:

JSON

Form

原始 Body

Multipart

不要手动设置 Multipart Content-Type,Boundary 由底层 Transport 生成。


12. JSON 返回类型

返回数组

返回任意 JSON 类型

获取原始响应

兼容数组形式:


13. Header

全局 Header

兼容:

单次请求 Header

Header 名大小写不敏感,后设置的同名 Header 会覆盖前者。

包含 CR 或 LF 的 Header 名和值会被拒绝,防止 Header Injection。


14. 鉴权与签名

14.1 Bearer Token

生成:


14.2 API Key


14.3 Basic


14.4 HMAC

不同供应商的 HMAC 规范可能不同。涉及 Query、Host、最终 Header 或特定 Canonical Request 时,应实现专用 ContextSignerInterface。


14.5 内部服务 Token

生成:


14.6 多个认证 Header 共存

最终会携带:


14.7 自动推断顺序

未显式设置 Signer 时:

复杂生产鉴权推荐显式传入专用 Signer。


15. Query 数组编码

支持:

示例:

结果:


16. 超时

支持三类超时:

配置 说明 默认值
connect TCP、代理或 TLS 连接超时 10 秒
request 整个请求总超时 30 秒
idle 流式请求连续无数据超时 180 秒

全局配置:

单次覆盖:

流式请求通常建议:

含义:


17. Retry

默认关闭

默认关闭是为了避免:

简单配置

表示首次失败后最多再重试两次。

完整配置

默认安全方法:

确认业务幂等后,可显式声明:

Multipart 和已经产生部分流式输出的请求不会透明重试。


18. SSE

同步 SSE

支持:


异步 SSE

异步方法必须运行在 Workerman 事件循环内:


19. NDJSON / JSON Lines

支持:


20. 原始字节流

适用于:

request-sdk 只保证字节顺序,不解释业务帧含义。


21. 兼容基础流入口

保留:

新项目推荐优先使用:

它们具有更明确的协议语义和终止状态。


22. Workerman 异步 HTTP

在已经启动的 Webman Worker 中,不要再次调用:

直接调用异步方法即可。


23. 取消请求

通过异步 Handle

通过 CancellationToken

同步请求正在阻塞系统调用时,CancellationToken 无法像异步连接一样瞬时中断底层调用。

需要立即取消的长连接场景应使用异步 API。


24. WebSocket Client

WebSocket Client 基于 Workerman 事件循环。

支持:

发送:


25. WebSocket 背压

Listener 可处理:

超过硬限制会抛出:


26. 文件上传

说明:


27. 文件下载

下载流程:

失败时清理 .part 文件。

异步下载:


28. Proxy

单次 HTTP 请求可以覆盖代理:

生产环境应分别验证:


29. TLS

默认开启:

本地自签名测试可临时关闭:

生产环境不得关闭 TLS 验证。


30. 跨 Origin 安全

绝对 URL 默认只能访问与 base_uri 相同 Origin 的地址。

跨 Origin 请求必须显式允许:

跨 Origin 后,SDK 默认移除:

只有明确可信的目标才允许继续转发凭证:


31. 日志与敏感信息脱敏

默认脱敏:

自定义敏感 Header:

请求和响应正文默认不写日志:

生产环境应谨慎开启正文日志。


32. 不可变链式配置

链式方法返回新 Client,不修改原对象,适合:


33. 异常体系

基础异常:

主要异常:

示例:


34. 响应大小限制

默认最大普通响应:

配置:

流式限制:

WebSocket 消息限制通过 WebSocketRequest 设置。


35. 方法总览

同步 HTTP

异步 HTTP

同步流

异步流

文件

WebSocket

不可变配置


36. 与 laybot/ai-sdk 的关系

推荐架构:

request-sdk 负责:

ai-sdk 负责:

如果只需要调用任意 HTTP API,直接使用 request-sdk。

如果需要统一调用大模型或语音能力,使用 ai-sdk。


37. 测试

静态检查与单元测试

建议包含:

安全审计:

本地网络集成测试

集成测试应使用本地 Mock Server 验证:

这些测试不需要第三方 API Key,也不会产生费用。

发布检查

建议在以下 PHP 版本执行:


38. Webman 使用建议

普通短请求:

以下场景优先使用异步 API:

不要在已经运行的 Webman Worker 中再次调用:


39. ThinkPHP、Laravel 和 PHP-FPM 使用建议

普通 HTTP、文件上传下载和同步流都可以直接使用。

如果在 PHP-FPM Controller 中将上游 SSE 继续转发到浏览器,还需要额外处理:

这些属于 PHP-FPM 和 Web Server 配置,不属于 SDK 本身。

长期 WebSocket Client 或大量异步连接不建议运行在传统 PHP-FPM 请求内。


40. 使用限制

当前 2.x 的明确边界:


41. 从 0.5.x 升级到 2.x

2.x 的主要变化:

0.5.x 中依赖:

的代码,需要按 2.x 明确的同步、异步和重试语义进行调整。


42. 贡献指南

提交代码前应确保:


43. LayBot 系列 SDK

LayBot · 灵语智教 专注教育与知识管理的 AIGC 平台,持续建设并开放可复用的基础组件。

当前系列包括:

request-sdk 负责稳定传输,ai-sdk 负责模型语义,业务项目负责产品逻辑。

欢迎关注与 Star。


License & Copyright

本项目采用 Apache License 2.0 开源协议。

版权所有 © larry · LayBot (https://www.laybot.cn)

为了促进技术交流,本项目核心基础库开放源码。但我们坚决捍卫开源作者的署名权与劳动成果:

严禁直接换皮、抹除作者信息后作为独立开源网络库重新发布。


All versions of request-sdk with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
ext-curl Version *
ext-json Version *
ext-openssl Version *
guzzlehttp/guzzle Version ^7.13
psr/http-message Version ^1.0 || ^2.0
psr/log Version ^2.0 || ^3.0
workerman/workerman Version ^5.2
workerman/http-client Version ~3.1.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package laybot/request-sdk contains the following files

Loading the files please wait ...