讓 Guzzle 支持 Swoole 協程,這個項目目的就是這麼簡單明了!
Guzzle-Swoole 是 Guzzle 的處理器(Handler),並沒有對 Guzzle 本身代碼進行修改,理論上可以兼容後續版本。
* 新增 Ring Handler 支持,可以用於 elasticsearch/elasticsearch 等包中:
* 無需再手動引入 guzzle
* 使用 YurunHttp 作為 Http 請求驅動,更加穩定可靠
Composer:"yurunsoft/guzzle-swoole":"~2.0"
<?php require dirname(__DIR__) . '/vendor/autoload.php'; use GuzzleHttp\Client; use Yurun\Util\Swoole\Guzzle\SwooleHandler; use GuzzleHttp\DefaultHandler; DefaultHandler::setDefaultHandler(SwooleHandler::class); go(function(){ $client = new Client(); $response = $client->request('GET', 'http://www.baidu.com', [ 'verify' => false, ]); var_dump($response->getStatusCode()); });
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
目錄下代碼。
$client = \Elasticsearch\ClientBuilder::create()->setHosts(['192.168.0.233:9200'])->setHandler(new \Yurun\Util\Swoole\Guzzle\Ring\SwooleHandler())->build();
[admin
]