grepper / grepper-php
Grepper PHP 库
Requires
- php: >=5.6.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
README
Grepper PHP 库为使用 PHP 语言编写的应用程序提供方便地访问 Grepper API 的功能。
要求
PHP 5.6.0 及更高版本。
Composer
您可以通过 Composer 安装 php 客户端。运行以下命令
composer require grepper/grepper-php
要使用绑定,请使用 Composer 的 自动加载
require_once 'vendor/autoload.php';
手动安装
如果您不想使用 Composer,可以下载 最新版本。然后,要使用 php 客户端,请包含 init.php 文件。
require_once '/path/to/grepper-php/init.php';
依赖项
绑定需要以下扩展才能正常工作
如果您使用 Composer,这些依赖项应自动处理。如果您手动安装,请确保这些扩展可用。
入门
简单用法如下
$grepper = new \Grepper\GrepperClient('your_api_key_here'); $answers = $grepper->answers->search([ 'query' => 'javascript loop array backwords' ]); print_r($answers);
文档
请参阅 PHP API 文档。
自定义请求超时
要修改请求超时(连接或总时间,单位为秒),您需要告诉 API 客户端使用非默认的 CurlClient。您将在该 CurlClient 中设置超时。
// set up your tweaked Curl client $curl = new \Grepper\HttpClient\CurlClient(); $curl->setTimeout(10); // default is \Grepper\HttpClient\CurlClient::DEFAULT_TIMEOUT $curl->setConnectTimeout(5); // default is \Grepper\HttpClient\CurlClient::DEFAULT_CONNECT_TIMEOUT echo $curl->getTimeout(); // 10 echo $curl->getConnectTimeout(); // 5 // tell Grepper to use the tweaked client \Grepper\ApiRequestor::setHttpClient($curl); // use the Grepper API client as you normally would
自定义 cURL 选项(例如,代理)
需要为您的请求设置代理?将必需的 CURLOPT_* 数组传递给 CurlClient 构造函数,使用与 curl_stopt_array() 相同的语法。这将为 SDK 执行的每个 HTTP 请求设置默认 cURL 选项,尽管即使在此处设置,客户端也会覆盖许多更多常见选项(例如超时;有关如何设置这些超时,请参见上面)。
// set up your tweaked Curl client $curl = new \Grepper\HttpClient\CurlClient([CURLOPT_PROXY => 'proxy.local:80']); // tell Grepper to use the tweaked client \Grepper\ApiRequestor::setHttpClient($curl);
或者,可以将可调用的函数传递给 CurlClient 构造函数,该函数根据请求输入返回上述数组。请参阅 tests/CurlClientTest.php 中的 testDefaultOptions() 以获取此行为的示例。请注意,在发送请求之前,将在每次 API 请求的开始调用可调用的函数。
配置记录器
库执行最小日志记录,但可以配置为使用与 [PSR-3 兼容的记录器][psr3],以便消息最终出现在那里而不是 error_log
\Grepper\Grepper::setLogger($logger);
访问响应数据
您可以通过 getLastResponse() 在任何对象上访问最后一个 API 响应中的数据。
$answers = $grepper->answers->search([ 'query' => 'js loop', ]); echo $answers->getLastResponse()->headers['Request-Id'];
配置 CA 套件
默认情况下,库将使用其自己的已知 CA 证书的内部套件,但可以配置您自己的套件
\Grepper\Grepper::setCABundlePath("path/to/ca/bundle");
配置自动重试
库可以配置为自动重试因间歇性网络问题而失败请求
\Grepper\Grepper::setMaxNetworkRetries(2);