grepper/grepper-php

1.0.3 2023-03-25 16:48 UTC

This package is auto-updated.

Last update: 2024-09-25 20:24:39 UTC


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';

依赖项

绑定需要以下扩展才能正常工作

  • curl,尽管您可以选择使用自己的非 cURL 客户端
  • json

如果您使用 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);