The change log describes what is "Added", "Removed", "Changed" or "Fixed" between each release.
- Added PluginConfigurator
- Increased min PHP version to 8.1
- Removed the deprecated
httplug_markup
twig filter. Use@Httplug/http_message.html.twig
template instead. - Removed deprecated configuration options:
toolbar
: Useprofiling
instead.respect_cache_headers
: Userespect_response_cache_directives
instead.
- Removed the deprecated
Http\HttplugBundle\ClientFactory\PluginClientFactory
. UseHttp\Client\Common\PluginClientFactory
instead. - Fixed a deprecation when creating a
HttpMethodsClient
viahttp_methods_client: true
. Only PSR-17 factories are now passed as constructor arguments. - Changed the default stream factory argument for the cache plugin. This now requires a PSR-17 StreamFactoryInterface instance.
- Creating a client using the
BuzzFactory
no longer acceptsverify_peer
andverify_host
config options. Only a booleanverify
flag is accepted, covering both previous options. - Removed support of deprecated PHP-HTTP factories, only PSR-17 factories are now supported and used.
- Removed
message_factory
,uri_factory
, andstream_factory
classes config option. You can configure your own factories viapsr17_*_factory
classes config - Removed support for guzzle5-adapter
- Removed support for Symfony versions <5.4
- Changed the return type of
ClientFactory
to return aClientInterface
instead ofClientInterface|HttpClient
- Changed the type of
httplug.client.default
toClientInterface
instead ofHttpClient
- Removed the
DummyClient
interface - Removed the
Http\Client\HttpClient
alias use thePsr\Http\Client\ClientInterface
typehint in your services for autowiring. - Changed classes marked as
@final
to be actuallyfinal
. If you extended any of those, instead implement interfaces or decorate the class rather than extending it. Open an issue if you think a class needs to be made non-final to discuss what we should do. - Added return type declaration to
Http\HttplugBundle\ClientFactory\ClientFactory::createClient
- Added interface name alias for the
Http\Mock\Client
and all PSR17 factories to help with autowiring.
- Same as 1.34.2 but tagged on the 1.x banch instead of the feature branch.
- More cleanup of the rate-limiter configuration. The service name is the full service name of the rate limiter, e.g.
limiter.my_name
when configuringframework.rate_limiter.my_name
.
- The rate-limiter name in the throttle plugin configuration is required.
- Support to configure the throttle plugin.
- Fixed extension to depend on the DependencyInjection component rather than the HttpKernel.
- Support php-http/cache-plugin 2.0 and bump minimal version to 1.7 by defaulting the stream factory for cache to
httplug.psr17_stream_factory
(#448).
- Added support for Symfony 7
- Added configuration for the
header
authentication plugin (#437).
- Added alias to allow autowiring the
AsyncHttpClient
interface (#436).
- Adjusted phpdoc on ClientFactory to reflect that it usually returns a PSR ClientInterface.
- Fixed deprecation from Symfony 6.3
- Support PSR-18 ClientInterface in MockFactory.
- Removed support for php-http/httplug 1.
- Added: Configure the seekable body plugins.
- Added: PHP 8.2 support.
- Added: Allow installation with PSR-7
psr/http-message
2.x. - Added: alias to autowire
Psr\Http\Client\ClientInterface
service (#425). - Deprecated
Http\Client\HttpClient
in favor ofPsr\Http\Client\ClientInterface
(#425).
- Added
: void
toCollector::reset
to avoid PHP warning. - If
captured_body_length
is set to 0 (default value), show a special message rather than the generic messageThis message has no captured body
. - Fixed: Add slash in profiler if there is none between host and path.
- Added support for configuring the error plugin via configuration.
- Fixed: You can now configure the cache plugin option
cache_lifetime
tonull
(which makes the plugin not add to the maxAge).
- Fixed: Setting the cache plugin option
respect_response_cache_directives
tonull
makes the plugin use the default set of directives instead of triggering an error.
- Fixed you can now configure the cache plugin
default_ttl
withnull
.
- Added PHP 8.1 support
- Added Symfony 6 support
- Removed Symfony 3.x support
- Changed stopwatch category from default to "httplug", so it's more prominent on Execution timeline view
- Changed tab texts inside profiler so that it shows ports in URL in case it's non-standard
- Changed default logging plugin monolog channel from "app" to "httplug"
- Fixed compatibility with Twig 3.x
- Fixed issue with whitespaces in URL when URL in tab was copied
- Fixed dark mode compatiblity, making some previously invisible elements visible
- Changed the way request/response body is displayed in profiler. symfony/var-dumper is used now.
- Changed badge counter of # of requests on side menu to be always visible
- Do not deprecate the service alias for the old Http\Client\HttpClient interface because different Symfony versions expect a different syntax for the deprecation, which triggers an error on some Symfony versions.
- Register client as alias for the PSR Psr\Http\Client\ClientInterface
- Deprecate relying on the Http\Client\HttpClient interface in favor of the PSR ClientInterface
- Added support for Target attribute available in Symfony 5.3
- Added
kernel.reset
tag to the Collector.
- Support PHP 8, dropped support for PHP 7.2.
ConfiguredClientsStrategy
no longer implementsEventSubscriberInterface
, this has been moved toConfiguredClientsStrategyListener
to avoid initializing the strategy on every request.
- Support the symfony/http-client
- Register PSR-17 / PSR-18 classes as services
- Allow to configure cache listeners on the cache plugin
- Tests are excluded from zip releases
- Define plugin service templates as abstract to avoid warnings from Symfony
- Support Symfony 5 and Twig 3.
- Configured clients are now tagged with
'httplug.client'
- Adds a link to profiler page when response is from a Symfony application with profiler enabled
- Adding
blacklisted_paths
option ofphp-http/cache-plugin
- Fixed error handling. Now TypeErrors and other \Throwable are correctly handled by ProfileClient
- Use tabular design in profiler for HTTP request/response headers
httplug.collector.twig.http_message
servicehttplug_markup
Twig function
- Dropped support for PHP < 7.1
- Dropped support for Symfony versions that do not receive bugfixes
- Integration for VCR Plugin
- Fix compatibility with curl-client
2.*
. TheCurlFactory
now builds the client using PSR-17 factories. Marked a conflict for curl-client1.*
.
- Fix to pass only allowed options to the
ContentTypePlugin
.
- Fix undefined
$serviceId
when a client is named "default".
- Autowiring support for FlexibleClient, HttpMethodsClientInterface and BatchClientInterface if they are enabled on the default/first client. (Only available with Httplug 2)
- Configuration for the
content_type
plugin - Support for namespaced Twig classes.
- Configuration option
default_client_autowiring
that you can set to false to prevent autowiring the HttpClient and HttpAsyncClient
- Moved source code to
src/
and tests totests/
- Removed
twig/twig
dependency - Removed hard dependency on
php-http/cache-plugin
. If you want to use the cache plugin, you need to require it in your project. - Allow to set
httpplug.profiling.captured_body_length
configuration tonull
to avoid body limitation size.
- MockFactory now accepts any client, e.g. a mock client decorated with the
plugin client for the development panel, so that configuring a mock client
actually works. The MockFactory is now
final
. - Width of the HTTPlug icon in Profiler Toolbar.
RequestExceptionInterface
formatting (getResponse()
is not called anymore).
- Support for any PSR-18 client.
- Allow version 2 of
php-http/client-common
- Fix deprecated notice when using symfony/config > 4.2
- Profiler does not display stack when client name contains dots
- Fix wrong duration calculation for asynchronous calls
- Allow to configure the
QueryDefaultsPlugin
- Add configuration option to allow making client services public if needed
- Add support for QueryParam in the AuthenticationPlugin
- Deprecation warnings on Symfony 4.1
- Allow to configure the
AddPathPlugin
per client, under theadd_path
configuration key. - Allow to configure clients with a
service
instead of a factory.
- Allow to configure the
BaseUriPlugin
per client, under thebase_uri
configuration key.
PluginClientFactory
name conflict with PHP 5.x.
- Symfony 4 support.
- Support autowiring of
Http\Client\Common\PluginClientFactory
. - Any third party library using
Http\Client\Common\PluginClientFactory
to createHttp\Client\Common\PluginClient
instances now gets zero config profiling. Http\HttplugBundle\Collector\Collector::reset()
ProfilePlugin
andStackPlugin
are no longer registered as (private) services decorators. Those decorators are now created through theHttp\HttplugBundle\Collector\PluginClientFactory
.
- The
Http\HttplugBundle\ClientFactory\PluginClientFactory
class.
- Removed wrapping auto discovered clients in a
PluginClient
, prevent double profiling. - Added missing service reference for
CachePlugin
'scache_key_generator
configuration option so that the option now actually works.
- Display of the profiler panel when used in a symfony/flex project.
- Add
Http\Message\MessageFactory
,Http\Message\StreamFactory
,Http\Message\UriFactory
andHttp\Client\HttpAsyncClient
services aliases for autowiring in Symfony 3.3. - Redirect requests are now displayed as nested.
- Plugins are now displayed with their FQCN instead of service id.
- The
DummyClient
interface.
- Made the "factory" configuration key optional.
- We do collect profiler data after the request is processed by a plugin. With this change we
will for example see the changes of
HeaderAppendPlugin
at that plugin instead of the next one.
- The real request method and target url are now displayed in the profiler.
- Support the cache plugin configuration for
respect_response_cache_directives
. - Extended WebProfilerToolbar item to list request with details.
- You can now copy any request as cURL command in the profiler.
- Support for autowring in Symfony 3.3
- Improved configuration validation
- The profiler design has been updated.
- Removed stopwatch-plugin in favor of
ProfileClient
.
- The configuration option
cache.config.respect_cache_headers
should no longer be used. Usecache.config.respect_response_cache_directives
instead.
- Make sure we always have a stack
- The profiler collector has been rewritten to use objects instead of arrays.
- Bumped minimum Symfony version to 2.8.
- Updated profiler badges to match Symfony 2.8+ profiler design.
- WebProfiler is no longer broken when there was a redirect.
- Dummy client should provide methods of HttpClient and HttpAsyncClient
- You can now also configure client specific plugins in the
plugins
option of a client. - Some plugins that you previously had to define in your own services can now be configured on the client.
- Support for BatchClient
- The stopwatch plugin included by default when using profiling.
- All clients are registered with the PluginClient (even in production)
- Improved debug tool registration
auto
value intoolbar.enabled
configtoolbar
config, useprofiling
instead
- Decoder, Redirect and Retry plugins can now be used and no longer trigger an error because of incorrect constructor arguments.
- Do not register debug tools when debugging is disabled (eg. in prod mode)
- Auto discovery by using the appropriate discovery class
- Support for cRUL constant names in configuration
- Flexible and HTTP Methods client support
- Discovery strategy to discover configured clients and/or add profiling
- Improved collector to include plugin stack in profile data
- Removed Puli logic and require
php-http/discovery:0.9
which makes Puli optional.
- Client factories for Buzz.
- Guzzle 6 client is now created according to the Httplug specifications with automated minimal behaviour. Make sure you configure the Httplug plugins as needed, for example if you want to get exceptions for failure HTTP status codes.
- [BC] PluginClientFactory returns an instance of
Http\Client\Common\PluginClient
(see php-http/client-common#14) - Plugins are loaded from their new packages
- Puli autoload issue on >=PHP 5.6, see puli/issues#190
- New configuration for authentication plugin. You may now specify the authentication credentials directly in the bundle's configuration. This will break previous authentication configuration.
- Client factories for Curl, React and Socket.
- Bug with circular reference when a client was named 'default'
- Dependency on
php-http/discovery
. You must now installpuli/symfony-bundle
to use auto discovery.