NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #307 most downloaded on Packagist
Common HTTP Client implementations and tools for HTTPlug
Last release 10 months ago
29 Nov 2025
Ships fairly regularly
a new release about every 8 months
Nearly every release is documented
notes for 35 of 35 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
36 releases · first in 2015
Allow installation with Symfony 8.
Updated code to not raise warnings for nullable parameters in PHP 8.4.
One column per quarter.
2.7.2
Compare
Allow installation with Symfony 7.
Dropped php-http/message-factory from composer requirements as it is abandoned and this package does not actually use it.
php-http/message-factory from composer requirements as it is abandoned and this package does not actually use it.Allow installation with http-message (PSR-7) version 2 in addition to version 1.
[RedirectPlugin] Redirection of non GET/HEAD requests with a body now removes the body on follow-up requests, if the HTTP method changes. To do this,
stream_factory option.stream_factory option to null explicitly.[RedirectPlugin] Fixed handling of redirection to different domain with default port
Dropped support for Symfony 2 and 3 - please keep using version 2.4.0 of this library if you can't update Symfony.
strict option to RedirectPlugin to allow preserving the request method on redirections with status 300, 301 and 302.
strict option to RedirectPlugin to allow preserving the request method on redirections with status 300, 301 and 302.Deprecation when constructing a HttpMethodsClient with PSR RequestFactory but without a StreamFactory
### Fixed - Support for PHP 8 - Plugin callable phpdoc
Plugin client builder for making a PluginClient
PluginClientHttpMethodsClientsymfony/options-resolver: ^2.6PluginClient with plugins### Added - Support Symfony 5
Deprecated option debug_plugins has been removed from PluginClient
HttpClientPool::chooseHttpClient() has now an explicit return type (Http\Client\Common\HttpClientPoolItem)Plugin::handleRequest(...) has now an explicit return type (Http\Promise\Promise)Interface suffix to avoid name collisions.)Http\Client\Common\Exception are final.debug_plugins has been removed from PluginClientdecider and delay have been removed from RetryPlugin, use exception_decider and exception_delay instead.Nothing published for this version
Backported from version 2: AddPathPlugin: Do not add the prefix if the URL already has the same prefix.
### Added - Support for Symfony 5
Updated type hints in doc blocks.
The old names still work but are deprecated.
VersionBridgePlugin and VersionBridgeClient to help plugins and clients to support both
1.x and 2.x version of php-http/client-common and php-http/httplug.decider to exception_decider
and delay to exception_delay. The old names still work but are deprecated.When multiple cookies exist, a single header with all cookies is sent as per RFC 6265 Section 5.4
Reverted change to RetryPlugin so it again waits when retrying to avoid "can only throw objects" error.
Add an option on ErrorPlugin to only throw exception on response with 5XX status code.
Strict comparison in DecoderPlugin
The debug_plugins option for PluginClient is deprecated and will be removed in 2.0. Use the decorator design pattern instead like in ProfilePlugin.
PluginClientFactory to create PluginClient instances.RetryPlugin.RetryPlugin.RetryPlugin does now wait between retries. To disable/change this feature you must write something like:$plugin = new RetryPlugin(['delay' => function(RequestInterface $request, Exception $e, $retries) {
return 0;
});
debug_plugins option for PluginClient is deprecated and will be removed in 2.0. Use the decorator design pattern instead like in ProfilePlugin.QueryDefaultsPlugin to add default query parameters.
QueryDefaultsPlugin to add default query parameters.DecoderPlugin does not longer claim to support compress content encoding
DecoderPlugin does not longer claim to support compress content encodingCookiePlugin allows main domain cookies to be sent/stored for subdomainsDecoderPlugin uses the right FilteredStream to handle deflate content encodingCast return value of StreamInterface::getSize to string in ContentLengthPlugin
StreamInterface::getSize to string in ContentLengthPluginBase URI plugin that combines Add Host and Add Path plugins
Fix Emulated Trait to use Http based promise which respect the HttpAsyncClient interface
AddHostPlugin also sets the port if specified
Suggest separate plugins in composer.json
debug_plugins option for PluginClientAdd a flexible http client providing both contract, and only emulating what's necessary
php-http/pluginsRemove useless interface in BatchException
### Changed - Updated package files - Updated HTTPlug to RC1
### Added - Emulated clients
Emulators and decorators from client-tools
Your coding agent can read these notes before it upgrades. Set up the MCP server →