Releases: laminas/laminas-cache
2.13.0
Release Notes for 2.13.0
Feature release (minor)
Changed
- The already deprecated
PatternFactory
no longer suggests thePatternPluginManager
as an alternative.
Deprecated
- Deprecated the
PatternPluginManager
as with v3.0.0, cache pattern do require strict dependency injection. Since most of the cache pattern depend on a storage implementation, which are not longer known by this component as of v3, a dynamic factory for the cache pattern won't be suitable anymore. - Deprecated the pattern factories
PatternCacheFactory
andStoragePatternCacheFactory
which were introduced in v2.12.0 to provide forward compatibility for the newStorageCapableInterface
implementing patterns.
2.13.0
- Total issues resolved: 1
- Total pull requests resolved: 1
- Total contributors: 1
Enhancement
2.12.2
Release Notes for 2.12.2
2.12.x bugfix release (patch)
With 2.12.0, a better key length handling for the PSR-16
decorator was introduced. The decorator initially supported 64 characters which was the minimum which PSR-16
requires to be supported by implementing cache backends. The redis adapter can take keys up to a length of 512 MB which results in a PCRE2 compilation error when validating the cache key length with the PSR-16
decorator.
This release decreases the maximum allowed key length for the PSR-16
decorator to 65534
to avoid that compilation error. Technically, this would be a BC break, but given the fact that cache adapters with a support for keys bigger than that ran into the compilation error when validating the cache keys, this is rather a necessary bugfix.
Changed
- The maximum supported key length for the
PSR-16
decorator is now65534
Fixes
- By decreasing the maximum supported key length for the
PSR-16
decorator,preg_match
won't result in a compilation error for cache adapters which would support even longer keys.
2.12.2
- Total issues resolved: 1
- Total pull requests resolved: 1
- Total contributors: 2
Bug
2.12.1
Release Notes for 2.12.1
2.12.x bugfix release (patch)
Fixes
- This component now only provides the
laminas-cli
config for CLI commands whensymfony/console
is available.
2.12.1
- Total issues resolved: 1
- Total pull requests resolved: 1
- Total contributors: 1
Bug
2.12.0
Release Notes for 2.12.0
Feature release (minor)
This release focuses on providing forward compatibility to the next major release of this component.
With laminas/laminas-cache
v3, using static factories for the adapters won't be possible anymore as this component wont be aware of which storage adapters are around.
All storage adapters will have to populate themselves to the AdapterPluginManager
.
Instead of using the StorageFactory
(which is marked as deprecated in this release), the StorageAdapterFactory
(StorageAdapterFactoryInterface
) should be used. It provides StorageAdapterFactoryInterface#createFromArrayConfiguration
which consumes the exact same (normalized¹) configuration as StorageFactory#factory
.
There are also replacements for the other methods of the StorageFactory
:
StorageAdapterFactoryInterface#create
is a replacement forStorageFactory#adapterFactory
StoragePluginFactoryInterface
is a replacement for theStorageFactory#pluginFactory
To verify that your projects configuration is compatible with the new normalized¹ configuration, you can use laminas/laminas-cli with the CLI command laminas-cache:deprecation:check-storage-factory-config
.
Added
- Added a
laminas-cli
command to check project configuration for deprecated storage configuration. - Added a
StorageAdapterFactoryInterface
which is retrievable via the PSR-11 container when this component is used with eitherlaminas/laminas-mvc
ormezzio/mezzio
.
Fixed
CacheItemPoolDecorator#saveDeferred
queued already expired cache items. This has been fixed and thus, the method will returnfalse
for cache items which are already expired.Serializer
plugin treated non-existent cache items as an error and thus did not incremented/decremented these values. Non-existent values must be treated as0
as this is how adapters handle the increment/decrement when not used with theSerializer
plugin.
Changed
- The
ExceptionInterface
now extends theThrowable
interface. CallbackCache
,ObjectCache
andClassCache
simplified method calls by avoiding the usage ofcall_user_func*
functions.- The
PSR-16
decorator now uses themaximum key length
capability to better reflect the PSR requirements.PSR-16
requires that the backend supports at least 64 characters but it may also allow more than 64 characters.
Deprecated
- Deprecated
StorageFactory
in favor ofStorageAdapterFactoryInterface
andStoragePluginFactoryInterface
. - Deprecated some storage configurations to normalize¹ the configuration for the
StorageAdapterFactoryInterface
. - Deprecated the usage of storage adapters which do not provide the
maximum key length
capability in combination with thePSR-16
decorator.
¹ Normalized array configuration example
[
'adapter' => 'apcu',
'options' => ['ttl' => 3600],
'plugins' => [
[
'name' => 'exception_handler',
'options' => [
'throw_exceptions' => false,
],
],
],
];
2.12.0
- Total issues resolved: 6
- Total pull requests resolved: 12
- Total contributors: 4
Bug
- 135: Bugfix: Serializer should treat non-existent items as
0
when incrementing/decrementing items thanks to @boesing - 134: Bugfix: Expired cache items must not be queued for later persistence thanks to @boesing
- 112: PSR-16 decorator should use maximum key length capability thanks to @boesing and @weierophinney
Enhancement
- 120: qa: normalize plugin tests thanks to @boesing
- 113: Remove
\Exception
fallback for PSR-16 decorator thanks to @boesing - 109: Extend Throwable in ExceptionInterface thanks to @ghostwriter
- 105: Remove file headers thanks to @ghostwriter
- 104: Normalize
StorageFactory
options thanks to @boesing - 80: Normalize adapter configuration thanks to @boesing
- 63: CallbackCache: simplify calling function/method thanks to @marc-mabe
Documentation,Enhancement
2.12.0-rc2
Feature release (minor)
Added
- Added a
laminas-cli
command to check project configuration for deprecated storage configuration.
Fixed
CacheItemPoolDecorator#saveDeferred
queued already expired cache items. This has been fixed and thus, the method will returnfalse
for cache items which are already expired.Serializer
plugin treated non-existent cache items as an error and thus did not incremented/decremented these values. Non-existent values must be treated as0
as this is how adapters handle the increment/decrement when not used with theSerializer
plugin.
Changed
- The
ExceptionInterface
now extends theThrowable
interface. CallbackCache
,ObjectCache
andClassCache
simplified method calls by avoiding the usage ofcall_user_func*
functions.- The
PSR-16
decorator now uses themaximum key length
capability to better reflect the PSR requirements.PSR-16
requires that the backend supports at least 64 characters but it may also allow more than 64 characters.
Deprecated
- Deprecated some storage configurations to normalize the configuration for the
StorageAdapterFactoryInterface
. - Deprecated the usage of storage adapters which do not provide the
maximum key length
capability in combination with thePSR-16
decorator.
2.12.0-rc1
Feature release (minor)
Added
- Added a
laminas-cli
command to check project configuration for deprecated storage configuration.
Changed
- The
ExceptionInterface
now extends theThrowable
interface. CallbackCache
,ObjectCache
andClassCache
simplified method calls by avoiding the usage ofcall_user_func*
functions.- The
PSR-16
decorator now uses themaximum key length
capability to better reflect the PSR requirements.PSR-16
requires that the backend supports at least 64 characters but it may also allow more than 64 characters.
Deprecated
- Deprecated some storage configurations to normalize the configuration for the
StorageAdapterFactoryInterface
. - Deprecated the usage of storage adapters which do not provide the
maximum key length
capability in combination with thePSR-16
decorator.
2.11.3
Release Notes for 2.11.3
2.11.x bugfix release (patch)
2.11.3
- Total issues resolved: 1
- Total pull requests resolved: 1
- Total contributors: 2
Bug,Documentation
2.11.2
Release Notes for 2.11.2
2.11.x bugfix release (patch)
Fixes
- Fixes a bug where decrementing a single key in combination with the
Serializer
plugin actually incremented the value
Added
- Added documentation for the
RedisCluster
adapter which is available inlaminas/laminas-cache-storage-adapter-redis
v1.2.0
2.11.2
- Total issues resolved: 0
- Total pull requests resolved: 3
- Total contributors: 1
Documentation
- 122: Documentation: redis update thanks to @boesing
Bug
Enhancement
2.11.1
Release Notes for 2.11.1
2.11.x bugfix release (patch)
Fixes
- Fixes a
PSR-6
deletion regression which was introduced in 2.10.2. TheCacheItemPoolDecorator
now verifies that all keys are absent from the storage. This is now in sync with theSimpleCacheDecorator
.
2.11.1
-
Total issues resolved: 0
-
Total pull requests resolved: 1
-
Total contributors: 1
-
101: Merge release 2.10.3 into 2.11.x thanks to @github-actions[bot]
2.10.3
2.10.3 - 2021-05-03
Release Notes for 2.10.3
2.10.x bugfix release (patch)
Fixes
- Fixes a
PSR-6
deletion regression which was introduced in 2.10.2. TheCacheItemPoolDecorator
now verifies that all keys are absent from the storage. This is now in sync with theSimpleCacheDecorator
.
2.10.3
- Total issues resolved: 0
- Total pull requests resolved: 1
- Total contributors: 1