定制 piedweb/curl 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

piedweb/curl

Composer 安装命令:

composer require piedweb/curl

包简介

curl OOP Wrapper

关键字:

README 文档

README

Latest Version Software License GitHub Tests Action Status Quality Score Code Coverage Type Coverage Total Downloads

Simple PHP Curl OOP wrapper for efficient request.

For a more complex or abstracted curl wrapper, use Guzzle.

Install

Via Packagist

$ composer require piedweb/curl

Usage

Quick Example :

$url = 'https://piedweb.com';
$request = new \PiedWeb\Curl\ExtendedClient($url);
$request
    ->setDefaultSpeedOptions(true)
    ->setDownloadOnlyIf('PiedWeb\Curl\Helper::checkContentType') // 'PiedWeb\Curl\Helper::checkStatusCode'
    ->setDesktopUserAgent()
;
$result = $request->request();
if ($result instanceof \PiedWeb\Curl\Response) {
    $content = $this->getContent();
}

Static Wrapper Methods :

use PiedWeb\Curl\StaticClient as Client;

Client::request($url); // @return ?string
Client::get(); // @return PiedWeb\Curl\ExtendedClient
Client::reset()

All Other Methods :

$r = new PiedWeb\Curl\ExtendedClient(?string $url);
$r
    ->setOpt(CURLOPT_*, mixed 'value')

	// Preselect Options to avoid eternity wait
    ->setDefaultGetOptions($connectTimeOut = 5, $timeOut = 10, $dnsCacheTimeOut = 600, $followLocation = true, $maxRedirs = 5)
    ->setDefaultSpeedOptions() // no header except if setted, 1 redir max, no ssl check
    ->setNoFollowRedirection()
    ->setReturnOnlyHeader()
    ->setCookie(string $cookie)
    ->setReferer(string $url)
    ->fakeBrowserHeader(bool $doIt = true)
    ->setUserAgent(string $ua)
    ->setDesktopUserAgent()
    ->setMobileUserAgent()
    ->setLessJsUserAgent()
        ->getUserAgent() // @return string

    ->setDownloadOnlyIf(callable $func) // @param $ContentType can be a String or an Array
    ->setMaximumResponseSize(int $tooBig = 200000) // @defaut 2Mo
    ->setDownloadOnly($range = '0-500')

    ->setPost(array $post)

    ->setEncodingGzip()

    ->setProxy(string '[scheme]proxy-host:port[:username:passwrd]') // Scheme, username and passwrd are facultatives. Default Scheme is http://

    ->setTarget($url)
        ->getTarget()

    $r->request(); // @return true if request succeed else false (see getError)

$response = $r->getResponse(); // @return PiedWeb\Curl\Response or int corresponding to the curl error

$response->getUrl(); // @return string
$response->getContentType(); // @return string
$response->getContent(); // @return string
$response->getHeaders($returnArray = true); // @return array Response Header (or in a string if $returnArray is set to false)
$response->getCookies(); // @return string
$response->getUrl(); // @return string

$response->getError(); // Equivalent to curl function curl_errno
$response->getErrorMessage(); // .. curl_error


use PiedWeb\Curl\ResponseFromCache;

$response = new ResponseFromCache(  // same methods than Response except getRequest return null
    string $filePathOrContent,
    ?string $url = null,
    array $info = [],
    $headers = PHP_EOL.PHP_EOL
);

Contributing

Please see contributing

Credits

License

The MIT License (MIT). Please see License File for more information.

Open Source Package

piedweb/curl 适用场景与选型建议

piedweb/curl 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 44.46k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2019 年 01 月 07 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「curl」 「Pied Web」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 piedweb/curl 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 piedweb/curl 我们能提供哪些服务?
定制开发 / 二次开发

基于 piedweb/curl 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 44.46k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 13
  • 依赖项目数: 7
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-01-07