- Test with PHP 8.3 and 8.4.
- Drop support of deprecated PHP-HTTP
StreamFactory
, only PSR-17StreamFactoryInterface
is now supported.
- Allow installation with Symfony 7.
- Avoid PHP warning about serializing resources when serializing the response by detaching the stream.
- Test with PHP 8.1 and 8.2
- Made phpspec tests compatible with PSR-7 2.0 strict typing
- Detect
null
and use 0 explicitly to calculate expiration
- Allow installation with psr/cache 3.0 (1.0 and 2.0 are still allowed too)
- Allow installation with Symfony 6
- Be more defensive about cache hits. A cache entry can technically contain
null
.
- Allow installation with psr/cache 2.0 (1.0 still allowed too)
- Support for PHP 8
- Support for Symfony 5.
- Support for PSR-17
StreamFactoryInterface
. - Added
blacklisted_paths
option, which takes an array ofstrings
(regular expressions) and allows to define paths, that shall not be cached in any case.
- Support for HTTPlug 2 / PSR-18
- Added
cache_listeners
option, which takes an array ofCacheListener
s, who get notified and can optionally act on a Response based on a cache hit or miss event. An implementation,AddHeaderCacheListener
, is provided which will add anX-Cache
header to the response with this information.
- Support for Symfony 4
- Removed check if etag is a string. Etag can never be a string, it is always an array.
CacheKeyGenerator
interface that allow you to configure how the PSR-6 cache key is created. There are two implementations of this interface:SimpleGenerator
(default) andHeaderCacheKeyGenerator
.
- Issue where deprecation warning always was triggered. Not it is just triggered if
respect_cache_headers
is used.
- New
methods
option which allows to configure the request methods which can be cached. - New
respect_response_cache_directives
option to define specific cache directives to respect when handling responses. - Introduced
CachePlugin::clientCache
andCachePlugin::serverCache
factory methods to easily setup the plugin with the correct config settigns for each usecase.
- The
no-cache
directive is now respected by the plugin and will not cache the response. If you need the previous behaviour, configurerespect_response_cache_directives
. - We always rewind the stream after loading response from cache.
- The
respect_cache_headers
option is deprecated and will be removed in 2.0. This option is replaced by the newrespect_response_cache_directives
option. If you had setrespect_cache_headers
tofalse
, set the directives to[]
to ignore all directives.
- The default value for
default_ttl
is changed fromnull
to0
.
- Issue when you use
respect_cache_headers=>false
in combination withdefault_ttl=>null
. - We allow
cache_lifetime
to be set tonull
.
- Support for cache validation with ETag and Last-Modified headers. (Enabled automatically when the server sends the relevant headers.)
hash_algo
config option used for cache key generation (defaults to sha1).
- Default hash algo used for cache generation (from md5 to sha1).
- Cast max age header to integer in order to get valid expiration value.
- Initial release