phpgt/curl

cURL 对象封装器。

维护者

详细信息

github.com/PhpGt/Curl

源代码

问题

资助包维护!
PhpGt

v3.1.1 2023-04-29 17:28 UTC

README

此库通过对象封装 PHP 的原生 cURL 扩展函数,以提高代码的可读性和可测试性。

为什么?我们希望为我们的 PHP 实现 Web 的 fetch API,即使用 cURL 创建异步 HTTP 调用并使用承诺的 PHP.Gt/Fetch,打下面向对象的基础。

Build status Code quality Code coverage Current version PHP.Gt/Curl documentation

示例用法:从远程源获取 JSON 对象

在处理 HTTP 调用时,处理 JSON 是极其常见的。此库通过缓冲 exec() 调用的输出,以便以后使用 output()outputJson() 方便地检索,从而减少了大量样板代码的需要。

使用 PHP.Gt/Curl 的示例

$curl = new Curl("https://catfact.ninja/fact");
$curl->exec();
$json = $curl->outputJson();
echo "Here's a cat fact: {$json->getString("fact")}";
echo PHP_EOL;
echo "The fact's length is {$json->getInt("length")} characters.";
echo PHP_EOL;

使用 PHP 的原生 curl_* 函数的相同示例

// Using native functionality to achieve the same:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://catfact.ninja/fact");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if(false === $result) {
	die("CURL error: " . curl_error($ch));
}
$json = json_decode($result);
if(is_null($json)) {
	die("JSON decoding error: " . json_last_error_msg());
}

// Note: No type checks are made on the `fact` and `length` properties here.
echo "Here's a cat fact: {$json->fact}";
echo PHP_EOL;
echo "The fact's length is {$json->length} characters.";
echo PHP_EOL;