摘要:這個項目目前已經(jīng)實現(xiàn)無需修改任何代碼,只需一句話設置全局默認處理器,完美無縫兼容協(xié)程環(huán)境。使用在中,你可以把默認設為。
讓 Guzzle 支持 Swoole 協(xié)程,這個項目目的就是這么簡單明了!
本項目不包含 Guzzle 功能,請自行在項目中引用 Guzzle 6.x,理論上可以支持升級 Guzzle 版本而無需更新 Guzzle-Swoole!
Composer:"yurunsoft/guzzle-swoole":"~1.1"
v1.1.0 版本說明:
說明眾所周知,使用 Guzzle 指定 Handler,需要在實例化 Client 時傳入。
這樣一來,想要把基于 Guzzle 開發(fā)的 SDK 用于 Swoole 協(xié)程環(huán)境就需要對原有 SDK 代碼進行修改。
Guzzle-Swoole 這個項目目前已經(jīng)實現(xiàn)無需修改任何代碼,只需一句話設置全局默認處理器,完美無縫兼容 Swoole 協(xié)程環(huán)境。
使用在 Swoole >= 4.2.0 中,你可以把默認 Handler 設為 StreamHandler。
GuzzleHttpDefaultHandler::setDefaultHandler(YurunUtilSwooleGuzzleSwooleHandler::class);
在 Swoole < 4.2.0 中,你可以把默認 Handler 設為本項目實現(xiàn)的 SwooleHandler。
GuzzleHttpDefaultHandler::setDefaultHandler(GuzzleHttpHandlerStreamHandler::class);
這樣一來,實現(xiàn)完美無縫兼容~
實現(xiàn)原理首先依賴了funkjedi/composer-include-files這個項目,這個項目的功能是把composer.json中配置引入的文件優(yōu)先引入,這樣就可以在這個文件里進行提前處理
接著通過 Composer 插件機制,在post-autoload-dump事件中做處理。
讀取guzzlehttp/guzzle/src/functions.php文件,將choose_handler()方法定義從代碼中去除,把修改后內存保存為guzzle-swoole/src/load.php文件。
在guzzle-swoole/src/functions.php文件中定義了修改后的choose_handler()方法,用于實現(xiàn)全局默認處理器的設置和獲取。
load.php和functions.php兩個文件會在運行時優(yōu)先引入,然后根據(jù)guzzlehttp/guzzle/src/functions_include.php中寫的判斷,Guzzle 就不會再引入他原有的functions.php文件了。
代碼倉庫碼云:https://gitee.com/yurunsoft/G...
Github:https://github.com/Yurunsoft/...
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/30903.html
摘要:是一個非常流行的的客戶端,現(xiàn)在各大廠的也都開始基于開發(fā),因為只支持的協(xié)程,而默認是使用擴展的,所以開發(fā)了,能在不修改源碼的情況下讓協(xié)程化。 Guzzle 是一個非常流行的 PHP 的 HTTP 客戶端,現(xiàn)在各大廠的 SDK 也都開始基于 Guzzle 開發(fā),因為 Swoole 只支持 PHP Stream 的協(xié)程 Hook ,而 Guzzle 默認是使用 cURL 擴展的,所以 Mix...
摘要:前些時間我們發(fā)布了實例協(xié)程池異步郵件發(fā)送守護程序范例,這一次我們提供一個使用大廠通過協(xié)程化來并行執(zhí)行短信發(fā)送任務,本文是一個代碼簡單性能極強的范例。 前些時間我們發(fā)布了 Mix PHP V2 實例:協(xié)程池異步郵件發(fā)送守護程序 范例,這一次我們提供一個使用大廠 SDK 通過 Swoole Hook 協(xié)程化來并行執(zhí)行短信發(fā)送任務,本文是一個代碼簡單、IO 性能極強的范例。 請先升級到 m...
閱讀 1391·2021-10-14 09:43
閱讀 4243·2021-09-27 13:57
閱讀 4574·2021-09-22 15:54
閱讀 2569·2021-09-22 10:54
閱讀 2386·2021-09-22 10:02
閱讀 2121·2021-08-27 13:11
閱讀 879·2019-08-29 18:44
閱讀 1651·2019-08-29 15:20