摘要:是一個非常流行的的客戶端,現(xiàn)在各大廠的也都開始基于開發(fā),因為只支持的協(xié)程,而默認(rèn)是使用擴展的,所以開發(fā)了,能在不修改源碼的情況下讓協(xié)程化。
Guzzle 是一個非常流行的 PHP 的 HTTP 客戶端,現(xiàn)在各大廠的 SDK 也都開始基于 Guzzle 開發(fā),因為 Swoole 只支持 PHP Stream 的協(xié)程 Hook ,而 Guzzle 默認(rèn)是使用 cURL 擴展的,所以 Mix PHP 開發(fā)了 Guzzle Hook,能在不修改源碼的情況下讓 Guzzle 協(xié)程化。
Githubhttps://github.com/mix-php/guzzle-hook
安裝使用 Composer 安裝:
composer require mix/guzzle-hook
在項目的 composer.json 文件中增加 extra 配置項,如下:
"extra": { "include_files": [ "vendor/mix/guzzle-hook/src/functions_include.php" ] }使用 直接使用 Guzzle 開發(fā)
無需做任何特殊的代碼處理,直接根據(jù) Guzzle 文檔使用:
// Mix PHP 中是 xgo ,原生 swoole 是 go go(function () { $client = new GuzzleHttpClient(); $res = $client->request("GET", "https://api.github.com/user", [ "auth" => ["user", "pass"], ]); echo $res->getStatusCode(); });第三方 SDK 依賴 Guzzle
比如:
alibabacloud/client
TencentCloud/tencentcloud-sdk-php
這類第三方庫從 composer.json 的 require 能看出來依賴了 guzzlehttp/guzzle,則可以在 Swoole 的協(xié)程中直接使用。
// Mix PHP 中是 xgo ,原生 swoole 是 go go(function () { try { // 實例化一個證書對象,入?yún)⑿枰獋魅腧v訊云賬戶secretId,secretKey $cred = new Credential("secretId", "secretKey"); // # 實例化要請求產(chǎn)品(以cvm為例)的client對象 $client = new CvmClient($cred, "ap-guangzhou"); // 實例化一個請求對象 $req = new DescribeZonesRequest(); // 通過client對象調(diào)用想要訪問的接口,需要傳入請求對象 $resp = $client->DescribeZones($req); print_r($resp->toJsonString()); } catch (TencentCloudSDKException $e) { echo $e; } });
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31388.html
摘要:前些時間我們發(fā)布了實例協(xié)程池異步郵件發(fā)送守護程序范例,這一次我們提供一個使用大廠通過協(xié)程化來并行執(zhí)行短信發(fā)送任務(wù),本文是一個代碼簡單性能極強的范例。 前些時間我們發(fā)布了 Mix PHP V2 實例:協(xié)程池異步郵件發(fā)送守護程序 范例,這一次我們提供一個使用大廠 SDK 通過 Swoole Hook 協(xié)程化來并行執(zhí)行短信發(fā)送任務(wù),本文是一個代碼簡單、IO 性能極強的范例。 請先升級到 m...
摘要:主函數(shù)查詢數(shù)據(jù)不手動釋放的連接不會歸還連接池,會在析構(gòu)時丟棄執(zhí)行結(jié)果為,說明是并行執(zhí)行的。主函數(shù)查詢數(shù)據(jù)即便拋出了異常,仍然能執(zhí)行到,沒有導(dǎo)致內(nèi)的一直處于阻塞狀態(tài)。主函數(shù)一次性定時持續(xù)定時停止定時 協(xié)程 Mix PHP V2 基于 Swoole 4 的 PHP Stream Hook 協(xié)程技術(shù)開發(fā),協(xié)程使用方式與 Golang 幾乎一致,包括框架封裝的協(xié)程池、連接池、命令行處理都大量參...
摘要:這個項目目前已經(jīng)實現(xiàn)無需修改任何代碼,只需一句話設(shè)置全局默認(rèn)處理器,完美無縫兼容協(xié)程環(huán)境。使用在中,你可以把默認(rèn)設(shè)為。 讓 Guzzle 支持 Swoole 協(xié)程,這個項目目的就是這么簡單明了! 本項目不包含 Guzzle 功能,請自行在項目中引用 Guzzle 6.x,理論上可以支持升級 Guzzle 版本而無需更新 Guzzle-Swoole! Composer:yurunsoft...
摘要:消費者開發(fā)使用本例時,請確保你使用的編譯時開啟了本例我們采用的守護程序協(xié)程池來完成一個超高性能的郵件發(fā)送程序。 去年 Mix PHP V1 發(fā)布時,我寫了一個多進程的郵件發(fā)送實例: 使用 mixphp 打造多進程異步郵件發(fā)送,今年 Mix PHP V2 發(fā)布,全面的協(xié)程支持讓我們可以使用一個進程就可達到之前多個進程都無法達到的更高 IO 性能,所以今天重寫一個協(xié)程池版本的郵件發(fā)送實例。...
摘要:搶占式調(diào)度我們在今年年初就計劃實現(xiàn)的搶占式調(diào)度,以滿足實現(xiàn)有些場景下的不均衡調(diào)度帶來的問題。考慮開線程,負責(zé)檢查當(dāng)前執(zhí)行協(xié)程執(zhí)行時間。達到我們的第二個協(xié)程主動搶占第一個協(xié)程的效果。 前言 Swoole內(nèi)核團隊開設(shè)的專欄,會逐漸投入精力寫文章介紹Swoole的開發(fā)歷程,實現(xiàn)原理,應(yīng)用實踐等,大家可以更好的交流,共同學(xué)習(xí),建設(shè)PHP生態(tài)。 協(xié)程調(diào)度 去年Swoole推出了4.0版本后,完整...
閱讀 2589·2021-11-23 09:51
閱讀 3386·2021-11-22 15:22
閱讀 1903·2021-11-18 13:22
閱讀 2320·2021-09-24 09:48
閱讀 1338·2019-08-29 13:58
閱讀 1332·2019-08-26 13:39
閱讀 2474·2019-08-26 10:48
閱讀 3063·2019-08-26 10:21