用途:帮助编写与框架解耦的 PHP HTTP 代码,基于 PSR-7/15/17/18 接口而非具体实现。
主要能力:PSR-7(psr/http-message)提供不可变 HTTP 消息接口;PSR-15(psr/http-server-handler、psr/http-server-middleware)定义中间件管线;PSR-17(psr/http-factory)提供创建 PSR-7 对象的工厂;PSR-18(psr/http-client)通过 ClientInterface::sendRequest() 发送请求并获取响应。资料还包含参考实现(nyholm/psr7、guzzlehttp/psr7、laminas-diactoros)的选型说明与完整中间件管线模板。
关键规则:消息不可变,每个 with*() 返回新实例,必须重新赋值;依赖接口而非具体类,类型提示用 ResponseInterface,注入 ResponseFactoryInterface,不在可复用代码中 new Response();流不是不可变的;PSR-18 的 4xx/5xx 不是错误,仅在传输失败或请求格式错误时抛异常;头部大小写不敏感。
使用方式:资料要求实现前并行启动三个 agent(explore-codebase 检测现有 PSR-7 实现、research-expert 核对接口版本、mcp__context7__query-docs 查工厂 API),实现后运行 fuse-ai-pilot:sniper 验证。示例:$response = $response->withStatus(201)->withHeader('Content-Type', 'application/json'); 中间件实现 MiddlewareInterface::process(),工厂用法 $requestFactory->createRequest('GET', 'https://api.example.com')。
适用场景:需要跨框架复用的 HTTP 库、中间件与客户端代码。
限制:不用于 Laravel 自带 HTTP 层(应转 laravel-expert)或 Symfony HttpFoundation(非 PSR-7 模型,需经 symfony/psr-http-message-bridge 桥接)。具体版本号、安装命令与价格信息暂未提供。