shutterstock / presto
此包的最新版本(2.0.1)没有可用的许可证信息。
PHP REST 调度,用于与 RESTful 服务交互
2.0.1
2015-05-13 15:42 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-14 13:55:52 UTC
README
PHP REST 调度
A REST 客户端,用于访问支持 RESTful 访问或任何 HTTP 访问方法的服务。支持所有 HTTP 方法,包括:GET、POST、DELETE、PUT、OPTIONS、HEAD、AUTH 和自定义。通过队列激活设置支持同时请求。使用队列可以将多个请求并行处理,这可以显著加快对多个服务或 API 终端的调用。
示例
$request = new Shutterstock\Presto\Presto(); $r = $request->get('http://www.google.com');
功能
- 内置对所有常见 REST 调用类型的支持
- 支持添加 AUTH 标头
- 支持队列和并行请求
- 支持传递用于处理响应的回调函数
- 内置日志记录和性能分析
- 支持每个请求基于自定义超时和重试
- 支持设置用户代理和引用
更多详情
Presto 依赖于 curl 来发送所有请求。提供了许多自定义选项,包括自定义头添加、引用和用户代理。内置了性能分析,并将所有 curl 元数据和计时信息记录下来,以协助故障排除和优化。失败的请求以错误的形式记录,可选择抛出异常。允许配置慢请求配置选项,将慢请求记录到错误日志中。失败请求可以在指定延迟后自动重试一定次数。
所有请求结果都存储在标准化的 Response 对象中,该对象包含元数据、头部和请求响应数据块。始终存在一个 is_success
元数据条目,用于指示网络请求是否成功。在失败的情况下,元数据部分将包含错误信息。
测试和覆盖率
Presto 有单元测试和集成测试。要查看覆盖率...
phpunit -c /tests/unit
phpunit -c /tests/integration
队列示例
Shutterstock\Presto\Presto::initQueue(); // callback function to process response $rest_response = function($r) { if ($r->is_success) { echo "{$r->http_code} - {$r->url} " . round($r->total_time, 2) . "s\n"; } else { echo "0 - {$r->url} {$r->error}\n"; } }; // URLs to hit, include one that will fail and another that will return a 404 $urls = [ 'http://www.google.com', 'http://www.yahoo.com', 'http://www.hfjkhfwekjhfkj.info', 'http://www.bigstockphoto.com/qwerty', ]; // Create an array to hold Presto request objects $requests = array(); foreach ($urls as $url) { $requests[$url] = new Shutterstock\Presto\Presto(); $requests[$url]->queue_enabled = true; $requests[$url]->get($url, null, $rest_response); } // Process all queued requests Shutterstock\Presto\Presto::processQueue();