riki137 / amp-client
PHP8.2+ AMPHPv3 适配器用于 Symfony HttpClient
7.0.3
2024-08-21 12:55 UTC
Requires
- php: >=8.2
- amphp/http-client: ^5.0
- psr/log: ^1|^2|^3
- symfony/http-client: ^7.0
- symfony/http-client-contracts: ^3.4.1
- symfony/service-contracts: ^2.5|^3
Conflicts
- php-http/discovery: <1.15
- symfony/http-foundation: <6.4
README
此包已弃用,应替换为 efabrica/revolt-curl-client。
这是对 @nicolas-grekas 的拉取请求 的部分分支,为 SymfonyHttpClient 添加了对 AMPHPv3 (AMPHP HTTPClient v5) 的支持,以替代等待 PHP 8.4。
这不是完全的分支以替代原始的 Symfony HttpClient,而是一个可以与其并用的独立包。
移除了 HTTP 客户端及其它适配器的代码,仅保留了与其 AMPHPv3 相关和必要的 @internal
代码。
通过延迟销毁解决了析构函数挂起的问题。
使用方法
composer require riki137/amp-client
use Riki137\AmpClient\AmpHttpClientV5; $client = new AmpHttpClientV5($options, null, $maxHostConnections, $maxPendingPushes); // implements HttpClientInterface, as you're used to $client->request('GET', 'https://example.com');
如果您使用此客户端,应在应用程序关闭时(onShutdown,终止事件等)包含此段代码。
\Revolt\EventLoop::run();
这确保了在应用程序关闭之前所有挂起的请求都已完成,并允许您避免 PHP <8.4 的析构函数挂起。