Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Yurunsoft/Guzzle-Swoole

让基于 Guzzle 的项目完美无缝兼容 Swoole 协程,支持:Guzzle、Elasticsearch client——来自宇润 PHP 全家桶
https://github.com/Yurunsoft/Guzzle-Swoole

coroutine guzzle guzzlehttp php swoole

Last synced: 3 months ago
JSON representation

让基于 Guzzle 的项目完美无缝兼容 Swoole 协程,支持:Guzzle、Elasticsearch client——来自宇润 PHP 全家桶

Awesome Lists containing this project

README

        

# Guzzle-Swoole

[![Latest Version](https://img.shields.io/packagist/v/yurunsoft/guzzle-swoole.svg)](https://packagist.org/packages/yurunsoft/guzzle-swoole)
[![Php Version](https://img.shields.io/badge/php-%3E=7.1-brightgreen.svg)](https://secure.php.net/)
[![Swoole Version](https://img.shields.io/badge/swoole-%3E=4.0.0-brightgreen.svg)](https://github.com/swoole/swoole-src)
[![IMI License](https://img.shields.io/github/license/Yurunsoft/Guzzle-Swoole.svg)](https://github.com/Yurunsoft/Guzzle-Swoole/blob/master/LICENSE)

## 介绍

guzzle-swoole 可以无损支持 Guzzle 在 Swoole 协程环境下的运行,不需要修改任何一行第三方包代码,即可支持协程化。

支持 Guzzle v6.x、v7.x。

支持 Composer v1.x、v2.x。

可以用于 `ElasticSearch`、`AWS` 等 SDK 当中。

兼容所有 Swoole 框架。

QQ群:17916227 [![点击加群](https://pub.idqqimg.com/wpa/images/group.png "点击加群")](https://jq.qq.com/?_wv=1027&k=5wXf4Zq)

## 使用说明

### 安装

手动改 `composer.json`:`"yurunsoft/guzzle-swoole":"^2.2"`

命令行安装:`composer require yurunsoft/guzzle-swoole`

### 全局设定处理器

```php
request('GET', 'http://www.baidu.com', [
'verify' => false,
]);
var_dump($response->getStatusCode());
});

```

### 手动指定 Swoole 处理器

```php
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use Yurun\Util\Swoole\Guzzle\SwooleHandler;

go(function(){
$handler = new SwooleHandler();
$stack = HandlerStack::create($handler);
$client = new Client(['handler' => $stack]);
$response = $client->request('GET', 'http://www.baidu.com', [
'verify' => false,
]);
var_dump($response->getBody()->__toString(), $response->getHeaders());
});
```

更加详细的示例代码请看`test`目录下代码。

### ElasticSearch

```php
$client = \Elasticsearch\ClientBuilder::create()->setHosts(['192.168.0.233:9200'])->setHandler(new \Yurun\Util\Swoole\Guzzle\Ring\SwooleHandler())->build();
```