carstenwindler / http-helper
Requires
- php: >=7.2
- laminas/laminas-diactoros: ^2
- symfony/http-foundation: ^4 || ^5
Requires (Dev)
- mikey179/vfsstream: ^1.6.4
- mockery/mockery: ^1
- phpunit/phpunit: ^8
- symplify/easy-coding-standard: ^7.2
README
这是一个集合,包含了您在日常进行 http 请求和响应工作时所需的辅助函数。
支持
- PSR-7 (
Psr\Http\Message\RequestInterface
,Psr\Http\Message\ResponseInterface
) - Symfony HttpFoundation (
Symfony\Component\HttpFoundation\Request
,Symfony\Component\HttpFoundation\Response
)
这些函数的主要思想是在开发过程中快速访问 http 信息(例如,通过调试控制台),因此这些函数没有命名空间。 这并不是为了在实际代码中使用! 严肃地说,它不是。
示例
以下是一些 http-helper 函数的实际应用
安装
composer require-dev carstenwindler/http-helper
(建议仅将这些函数作为 require-dev
添加)。
这些函数使用 composer 的自动加载功能进行注册,因此您无需做任何事情。
辅助函数
请求
以下函数支持 Psr\Http\Message\RequestInterface
和 Symfony\Component\HttpFoundation\Request
。
request_to_string()
根据 RFC 7230 将请求对象序列化为纯 HTTP 格式。
request_to_file()
与 request_to_string() 类似,但请求字符串将存储在您的 DOCUMENT_ROOT 中名为 request.http
的文件中。
这样,您可以轻松地使用 PhpStorms 的酷炫 基于编辑器的 Rest 客户端 执行请求。
如果文件已存在且不为空,请求将被追加。
request_to_curl()
返回请求对象作为 cURL 命令,因此可以在控制台或轻松导入 Postman 中使用。
响应
以下函数支持 Psr\Http\Message\ResponseInterface
和 Symfony\Component\HttpFoundation\Response
。
response_to_string()
根据 RFC 7230 将响应对象序列化为纯 HTTP 格式。
response_to_file()
与 response_to_string()
类似,但响应字符串将存储在您的 DOCUMENT_ROOT 中名为 response.http
的文件中。
文件使用
以下示例展示了如何轻松地将请求和响应存储在文件中。
但为什么要这样做呢?在这里,PhpStorm 就派上用场了。现在它配备了酷炫的 基于编辑器的 Rest 客户端(想象一下一个非常简单的 Postman,没有所有花哨的界面)。
http-helper 使用后缀 .http
,这被 PhpStorm 识别,因此您将立即有机会在该文件中修改并重新运行请求。我非常喜欢这个想法,因为您可以将其添加到您的代码库中,这样您的其他开发者就可以立即访问它。
致谢
PSR-7 请求和响应的序列化使用 Laminas Diactoros 完成。名字奇怪,但库很棒!
Symfony 使用内置序列化器。不错。
待办事项
- 使
*_to_file()
的存储路径可配置