chillerlan / php-curl
1.0.7
2018-04-15 03:02 UTC
Requires
- php: >=7.0.7
- chillerlan/php-traits: ^1.1
Requires (Dev)
- phpunit/phpunit: ^6.5
README
一个简单的 cURL 包装器,主要用于 API 抓取目的。
特性
- 没有 PSR-7!
- 没有 87 层额外的抽象!
- 没有花哨的功能!
如果你在寻找这样的工具,请继续使用 Guzzle。
要求
- PHP 7+
- cURL 扩展
- 可能需要一个 CA 证书包
文档
安装
需要 Composer
composer.json
你可以简单地克隆仓库,然后在根目录中运行 composer install
。如果你想在其他地方使用它,只需将以下内容添加到你的 composer.json 中(注意:将 dev-master
替换为一个 版本边界)
{ "require": { "php": ">=7.0.7", "chillerlan/php-curl": "dev-master" } }
手动安装
从 master 或 发布版 下载所需版本的软件包,并将其内容解压到你的项目文件夹中。然后
- 运行
composer install
以安装所需的依赖项并生成/vendor/autoload.php
。 - 如果你使用自定义的自动加载器,将命名空间
chillerlan\TinyCurl
指向软件包的src
文件夹
完成!
用法
请求
最简单的方法
use chillerlan\TinyCurl\{Request, URL}; $response = (new Request)->fetch(new URL('http://example.url/path')); //do stuff $json = $response->json;
设置选项的方法
use chillerlan\TinyCurl\{Request, RequestOptions, URL}; $options = new RequestOptions; $options->ca_info = '/path/to/cacert.pem'; // while creating the Request instance $request = new Request($options); // on an existing Request instance: $request->setOptions($options); // ...
Request
类还提供了一个方法,可以轻松提取短网址
use chillerlan\TinyCurl\Request; (new Request)->extractShortUrl('https://#/ZSS6nVOcVp');
RequestTrait
RequestTrait
是一个简化版,以便快速实现。在你的类中使用 trait
class MyClass{ use RequestTrait; public function __construct(){ $this->setRequestCA('/path/to/cacert.pem'); } public function doStuff(){ $response = $this->fetch(new URL('https://example.url/path')); } }
MultiRequest
MultiRequest
是对 curl_multi
(也称为 "rolling cURL")的实现,用于并行、非阻塞地处理多个 cURL 请求。请参阅测试和示例以及我的 GW2 数据库,以了解实现细节。
RequestOptions
属性
属性 | 类型 | 默认值 | 允许的 | 描述 |
---|---|---|---|---|
$user_agent |
字符串 | 'chillerLAN-php-curl' | * | 每个请求使用的用户代理 |
$timeout |
整型 | 10 | * | 请求超时 |
$curl_options |
数组 | [] |
[*] |
每个实例的cURL选项 |
$ca_info |
字符串 | 空值 | * | 指向一个cacert的路径 |
$max_redirects |
整型 | 0 | * | 最大重定向次数 |
MultiRequestOptions
属性
MultiRequestOptions
对象通过以下属性扩展了RequestOptions
属性 | 类型 | 默认值 | 允许的 | 描述 |
---|---|---|---|---|
$handler |
字符串 | 空值 | * | 一个可选的处理程序FQCN(实现MultiResponseHandlerInterface ) |
$window_size |
整型 | 5 | * | 并发请求的最大值 |
$sleep |
整型 | 100 | * | 启动时每个触发请求之间的休眠定时器(毫秒) |
免责声明!
我对熔化的电话线、膨胀的硬盘、自引起的DDoS、破碎的屏幕等不承担责任。使用风险自负! ;)