gnujavasergio / httpful
一个可读的、链式的、REST友好的PHP HTTP客户端
Requires
- php: >=5.3
- ext-curl: *
Requires (Dev)
README
Httpful 是一个适用于 PHP 5.3+ 的简单 Http 客户端库。它注重可读性、简单性和灵活性——基本上提供完成任务的功能和灵活性,并使这些功能易于使用。
特性
- 支持可读的 HTTP 方法(GET、PUT、POST、DELETE、HEAD、PATCH 和 OPTIONS)
- 自定义头部
- 自动“智能”解析
- 自动负载序列化
- 基本认证
- 客户端证书认证
- 请求“模板”
预览
以下是一些可以刺激你食欲的东西。搜索包含 "#PHP" 的推特 API,为了好玩加了一个 trivial header。请注意,库自动将响应解释为 JSON(如果需要可以覆盖此设置)并将其解析为对象数组。
// Make a request to the GitHub API with a custom // header of "X-Trvial-Header: Just as a demo". $url = "https://api.github.com/users/nategood"; $response = \Httpful\Request::get($url) ->expectsJson() ->withXTrivialHeader('Just as a demo') ->send(); echo "{$response->body->name} joined GitHub on " . date('M jS', strtotime($response->body->created_at)) ."\n";
安装
Phar
一个 PHP Archive(或 .phar)文件可用于 下载。只需 下载 .phar 文件,将其放入您的项目,就像包含任何其他 php 文件一样。 此方法适用于较小项目、一次性脚本和快速 API 破坏。
include('httpful.phar'); $r = \Httpful\Request::get($uri)->sendIt(); ...
Composer
Httpful 符合 PSR-0 规范,可以使用 composer 安装。只需将 nategood/httpful
添加到您的 composer.json 文件中。 Composer 是 PEAR 的合理替代品。它非常适合管理大型项目的依赖关系。
{
"require": {
"nategood/httpful": "*"
}
}
从源代码安装
由于 Httpful 符合 PSR-0 规范,您还可以简单地克隆 Httpful 仓库并使用兼容 PSR-0 的自动加载器来加载库,例如 Symfony 的。或者您可以使用 Httpful 内置的兼容 PSR-0 的自动加载器(只需 require("bootstrap.php")
)。
构建您的 Phar
如果您想构建自己的 Phar Archive,可以使用包含的 build
脚本。确保您的 php.ini
中 phar.readonly
设置的值为 Off 或 0。此外,您还需要在项目根目录中创建一个空的 downloads
目录。
查看更多!
您可以查看 Httpful 登录页面 了解更多信息,包括许多示例和 文档。
贡献
Httpful 非常鼓励发送拉取请求。在提交拉取请求时,请
- 所有拉取请求都应针对
dev
分支(而不是master
) - 确保您的代码遵循 编码规范
- 请使用软制表符(四个空格)而不是硬制表符
- 确保您为您的更改添加适当的测试覆盖率
- 通过
phpunit ./tests
在测试目录中运行所有单元测试 - 在适当的地方添加注释,并添加描述性的拉取请求消息
变更日志
0.2.20
- 小改进:将响应构建逻辑移入单独的函数 PR #193
0.2.19
0.2.18
0.2.17
- 特性 PR #144 向 Response 类添加额外参数,以指定关于请求/响应的额外元数据(例如,重定向次数)。
0.2.16
- 特性 添加了对 whenError 的支持,用于定义在发生错误时触发的自定义回调。这对于记录或覆盖默认错误日志行为非常有用。
0.2.15
- 特性 I #131 支持 SOCKS 代理
0.2.14
- 特性 I #138 添加了 XML 请求构建的替代选项。在下一个主要版本中,这可能会取代旧版本。
0.2.13
- 重构 I #121 在 curl 错误上抛出更具描述性的异常
- 重构 I #122 请求中的代理清理更好
- 重构 I #119 更好地记录 Request::body 上的 mimeType 参数
- 其他代码和测试清理
0.2.12
- 重构 I #123 支持新的 curl 文件上传方法
- 特性 I #118 5.4 HTTP 测试服务器
- 修复 I #109 错别字
- 修复 I #103 处理 strictSsl 模式下的 CURLOPT_SSL_VERIFYHOST
0.2.11
- 修复 I #99 防止 HEAD 请求挂起
0.2.10
- 修复 I #93 修复了内容长度设置错误的边缘情况
0.2.9
- 特性 I #89 支持 multipart/form-data(即文件上传)!感谢 @dtelaroli!
0.2.8
- 修复 对 Pull Request 86 的修正通知
0.2.7
- 修复 I #86 使用代理时移除 Connection Established 标头
0.2.6
- 修复 I #85 空内容长度问题已解决
0.2.5
0.2.4
0.2.3
- 修复 覆盖默认 MIME 处理器
- 修复 PR #73 解析 HTTP 状态代码
0.2.2
- 特性 支持将 JSON 响应解析为关联数组而不是对象
- 特性 更好地支持在 MIME 处理器上设置构造函数参数
0.2.1
- 特性 PR #72 允许支持自定义 Accept 标头
0.2.0
0.1.6
- 通过重载
followRedirects(int max_redirects)
方法设置最大重定向次数 - 符合标准的
Accepts
报头修复 - 通过 Composer 安装时修复引导过程的问题
0.1.5
- 使用
DIRECTORY_SEPARATOR
常量 PR #33 - PR #35
- 将原始报头属性引用添加到响应中。
- 组合请求报头并将原始报头添加到请求对象中。
- 修复了响应中的错误并添加了更多注释以提高可读性。
- 修复了报头解析,以允许最少的(仅状态行)解析,并根据RFC2616处理实际以CRLF结束的报头。
- 为所有可接受场景添加了完美的测试 Accept: 报头,详情请见 @b78e9e82cd9614fbe137c01bde9439c4e16ca323。
- 添加默认 User-Agent 报头
User-Agent: Httpful/0.1.5
+ curl 版本 + 服务器软件 + PHP 版本- 要绕过此“默认”操作,只需向请求报头中添加 User-Agent 即可,即使是空 User-Agent 也足够,并且足以产生预期效果。
- 完成了新增功能的测试单元。
- 添加了 phpunit 覆盖率报告,并帮助 phpunit 更容易地自动定位测试。
0.1.4
- 添加 CSV 处理支持 PR #32
0.1.3
- 在 JsonParser 和 XmlParser 中处理空响应
0.1.2
- 添加了对设置 XMLHandler 配置选项的支持
- 添加了覆盖 XmlHandler 和注册自定义解析器的示例
- 删除了 httpful.php 下载(已弃用,改为 httpful.phar)
0.1.1
- 修复序列化默认情况并添加 phpunit 测试
0.1.0
- 添加了对注册 MIME 处理器的支持
- 创建了一个必须由所有 MIME 处理器扩展的 AbstractMimeHandler 类型
- 将解析/序列化逻辑从 Request/Response 类中提取出来,放入它们各自的 MIMEHandler 类中
- 添加了注册新 MIME 处理器以处理 MIME 类型的能力