php-guard/curl
Composer 安装命令:
composer require php-guard/curl
包简介
PHP Curl Wrapper with multi-curl support. Easy use with CurlRequest and CurlResponse objects.
README 文档
README
This library is an alternative to "https://github.com/php-curl-class/php-curl-class". Easy use with CurlRequest and CurlResponse objects.
Installation
Install via Composer
$ composer require php-guard/curl
Requirements
- php: ^7.1
Usage
Quick Start
require __DIR__ . '/vendor/autoload.php';
use \PhpGuard\Curl\Curl;
use \PhpGuard\Curl\CurlError;
$this->curl = new Curl();
try {
// Execute a single request
$response = $this->curl->get('http://example.com'); // Return a CurlResponse
echo $response->raw();
// Execute multiple requests
$responses = $this->curl->multi() // Create a MultiCurl object
->get('http://example.com') // Add a get request
->post('http://example.com') // Add a post request
->execute(); // Return an array of CurlResponse
foreach ($responses as $response) {
echo $response->raw();
}
} catch (CurlError $e) {
echo 'Error: ' . $curl->getCode(). ': ' . $curl->getMessage(). "\n";
}
Available Methods
\PhpGuard\Curl\Curl
HTTP methods
get(string $url, $query = null, array $headers = []): CurlResponse
post(string $url, $data = null, $query = null, array $headers = []): CurlResponse
put(string $url, $data = null, $query = null, array $headers = []): CurlResponse
patch(string $url, $data = null, $query = null, array $headers = []): CurlResponse
delete(string $url, $data = null, $query = null, array $headers = []): CurlResponse
Run a single request
execute(CurlRequest $request): CurlResponse
Prepare multiple requests
multi(array $options = []): MultiCurl
Edit request and response processing (advanced usage)
getCurlRequestFactory(): CurlRequestFactory
getRequestModifierPipeline(): RequestModifierPipeline
\PhpGuard\Curl\CurlRequest
You can use Curl to execute requests or you can use the CurlRequestFactory to return CurlRequest instances.
Properties url, method and data have getters and setters.
The method setHeaderContentType(string $contentType) is a shortcut for
$curlRequest->getHeaders['Content-Type'] = $contentType
Other methods
execute(bool $throwExceptionOnHttpError = false): CurlResponse
getCurlOptions(): CurlOptions
getHeaders(): Headers
\PhpGuard\Curl\MultiCurl
get(string $url, $query = null, array $headers = []): self
post(string $url, $data = null, $query = null, array $headers = []): self
put(string $url, $data = null, $query = null, array $headers = []): self
patch(string $url, $data = null, $query = null, array $headers = []): self
delete(string $url, $data = null, $query = null, array $headers = []): self
execute(): CurlResponse[]
\PhpGuard\Curl\CurlResponse
statusCode(): int
isError(): bool // True if status code >= 300
headers(): Headers
raw() // Raw content of the response
json() // Array or false if not a json response
\PhpGuard\Curl\CurlRequestFactory
Set the base url for all requests
setBaseUrl(?string $baseUrl): self
Set the option curl CURLOPT_SSL_VERIFYPEER
setSslVerifyPeer(bool $value): self
Create a CurlRequest
create(string $method, string $url, $data = null, $query = null, array $headers = []): CurlRequest
Edit other default curl options
getDefaultCurlOptions(): CurlOptions
getDefaultHeaders(): Headers
\PhpGuard\Curl\Collection\CurlOptions
This class implements \ArrayAccess. It can therefore be used as an array.
\PhpGuard\Curl\Collection\Headers
This class implements \ArrayAccess. It can therefore be used as an array.
In addition, the keys are case insensitive.
\PhpGuard\Curl\RequestModifierPipeline
Add an object to modify CURL requests
pipe(RequestModifierInterface $requestModifier): self
By default, FileRequestModifier and PlainTextRequestModifier are active. If necessary, you can add an instance of ProxyRequestModifier
-
ProxyRequestModifier allows you to define curl options to use a proxy
-
FileRequestModifier is used to manage file paths starting with @ and passed as a parameter by transforming them into CurlFile and then modifying the HTTP Content-Type header.
-
PlainTextRequestModifier changes the HTTP Content-Type header to text/plain when a string is passed as a parameter.
php-guard/curl 适用场景与选型建议
php-guard/curl 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 22 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 10 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 php-guard/curl 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 php-guard/curl 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 22
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2018-10-20