Volodymyr Panivko created THRIFT-6010:
-----------------------------------------

             Summary: Add PSR-18 HTTP transport (TPsrHttpClient) and deprecate 
TCurlClient in PHP library
                 Key: THRIFT-6010
                 URL: https://issues.apache.org/jira/browse/THRIFT-6010
             Project: Thrift
          Issue Type: Improvement
          Components: PHP - Library
            Reporter: Volodymyr Panivko


Introduce a new HTTP transport `Thrift\Transport\TPsrHttpClient` backed by any 
PSR-18 `Psr\Http\Client\ClientInterface`. The constructor optionally accepts an 
injected client + PSR-7 factories; when omitted, dependencies are 
auto-discovered via `php-http/discovery`.

Concrete HTTP client implementations (Guzzle, Symfony HttpClient, 
php-http/curl-client) are listed under Composer `suggest` so the library 
remains backend-agnostic.

`Thrift\Transport\TCurlClient` (procedural ext-curl) is marked `@deprecated` in 
favor of the new class and will be removed in the next version. `THttpClient` 
(stream wrappers via fopen) remains as a dependency-free alternative.

Includes new unit tests using an injected fake `ClientInterface` (no `phpmock` 
mocking of `curl_*`/`fopen` required) and a new `lib/php/UPGRADING.md` 
migration guide.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to