摘要:是一個非常流行的的客戶端,現在各大廠的也都開始基于開發,因為只支持的協程,而默認是使用擴展的,所以開發了,能在不修改源碼的情況下讓協程化。
Guzzle 是一個非常流行的 PHP 的 HTTP 客戶端,現在各大廠的 SDK 也都開始基于 Guzzle 開發,因為 Swoole 只支持 PHP Stream 的協程 Hook ,而 Guzzle 默認是使用 cURL 擴展的,所以 Mix PHP 開發了 Guzzle Hook,能在不修改源碼的情況下讓 Guzzle 協程化。
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 開發
無需做任何特殊的代碼處理,直接根據 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 的協程中直接使用。
// Mix PHP 中是 xgo ,原生 swoole 是 go go(function () { try { // 實例化一個證書對象,入參需要傳入騰訊云賬戶secretId,secretKey $cred = new Credential("secretId", "secretKey"); // # 實例化要請求產品(以cvm為例)的client對象 $client = new CvmClient($cred, "ap-guangzhou"); // 實例化一個請求對象 $req = new DescribeZonesRequest(); // 通過client對象調用想要訪問的接口,需要傳入請求對象 $resp = $client->DescribeZones($req); print_r($resp->toJsonString()); } catch (TencentCloudSDKException $e) { echo $e; } });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31388.html
摘要:前些時間我們發布了實例協程池異步郵件發送守護程序范例,這一次我們提供一個使用大廠通過協程化來并行執行短信發送任務,本文是一個代碼簡單性能極強的范例。 前些時間我們發布了 Mix PHP V2 實例:協程池異步郵件發送守護程序 范例,這一次我們提供一個使用大廠 SDK 通過 Swoole Hook 協程化來并行執行短信發送任務,本文是一個代碼簡單、IO 性能極強的范例。 請先升級到 m...
摘要:主函數查詢數據不手動釋放的連接不會歸還連接池,會在析構時丟棄執行結果為,說明是并行執行的。主函數查詢數據即便拋出了異常,仍然能執行到,沒有導致內的一直處于阻塞狀態。主函數一次性定時持續定時停止定時 協程 Mix PHP V2 基于 Swoole 4 的 PHP Stream Hook 協程技術開發,協程使用方式與 Golang 幾乎一致,包括框架封裝的協程池、連接池、命令行處理都大量參...
摘要:這個項目目前已經實現無需修改任何代碼,只需一句話設置全局默認處理器,完美無縫兼容協程環境。使用在中,你可以把默認設為。 讓 Guzzle 支持 Swoole 協程,這個項目目的就是這么簡單明了! 本項目不包含 Guzzle 功能,請自行在項目中引用 Guzzle 6.x,理論上可以支持升級 Guzzle 版本而無需更新 Guzzle-Swoole! Composer:yurunsoft...
摘要:消費者開發使用本例時,請確保你使用的編譯時開啟了本例我們采用的守護程序協程池來完成一個超高性能的郵件發送程序。 去年 Mix PHP V1 發布時,我寫了一個多進程的郵件發送實例: 使用 mixphp 打造多進程異步郵件發送,今年 Mix PHP V2 發布,全面的協程支持讓我們可以使用一個進程就可達到之前多個進程都無法達到的更高 IO 性能,所以今天重寫一個協程池版本的郵件發送實例。...
摘要:搶占式調度我們在今年年初就計劃實現的搶占式調度,以滿足實現有些場景下的不均衡調度帶來的問題。考慮開線程,負責檢查當前執行協程執行時間。達到我們的第二個協程主動搶占第一個協程的效果。 前言 Swoole內核團隊開設的專欄,會逐漸投入精力寫文章介紹Swoole的開發歷程,實現原理,應用實踐等,大家可以更好的交流,共同學習,建設PHP生態。 協程調度 去年Swoole推出了4.0版本后,完整...
閱讀 2565·2021-11-23 09:51
閱讀 3361·2021-11-22 15:22
閱讀 1873·2021-11-18 13:22
閱讀 2258·2021-09-24 09:48
閱讀 1312·2019-08-29 13:58
閱讀 1303·2019-08-26 13:39
閱讀 2448·2019-08-26 10:48
閱讀 3035·2019-08-26 10:21