4.0.0
Release Notes for 4.0.0
laminas-cache
4.0.0 is here and finally adds native types everywhere, adds support for psr/cache
and psr/simple-cache
v2 & v3 and introduces an all new metadata logic which allows adapters to provide metadata they actually support.
Please read more on how to migrate your project in our migration guideline.
Added
- Every adapter which supports
metadata
now implementsMetadataCapableInterface
and provides a dedicated object containing all the metadata values it supports - Adds support for
psr/cache
andpsr/simple-cache
v2 & v3
Removed
supportedMetadata
capability fromCapabilities
KeyListIterator::CURRENT_AS_METADATA
mode along withLaminas\Cache\Exception\MissingKeyException
- automatic instantiation of
SerializerInterface
when callingPluginOptions#getSerializer
- Increment and decrement feature from
StorageInterface
, so there is no moreStorageInterface#incrementItem
,StorageInterface#decrementItem
,StorageInterface#decrementItems
andStorageInterface#incrementItems
- this also removes
incrementItem
,incrementItems
,decrementItem
,derementItems
events (pre
,post
andexception
)
- this also removes
- dependency inversion on virtual package
laminas/laminas-cache-storage-adapter-implementation
which now allowslaminas-cache
to be required without a concrete storage adapter implementation - removed support for
psr/cache
andpsr/simple-cache
v1
Breaking Changes
AbstractAdapter
andStorageInterface
are not aware of the methodsgetMetadata
anymore. These were moved to the newMetadataCapableInterface
Capabilities
do not providesupportedMetadata
anymore. The supported metadata is tied to the used storage adapter and thus, was already requiring projects to explicitly know the exact implementation of the cache backend in case of using these metadatas anywayKeyListIterator
and the correspondingIteratorInterface
does not provide themode
CURRENT_AS_METADATA
anymorePluginOptions#getSerializer
does not create a serializer anymore if astring
option was passed, instead, thestring
is returned- Increment and decrement feature was removed from
StorageInterface
, so there is no moreStorageInterface#incrementItem
,StorageInterface#decrementItem
,StorageInterface#decrementItems
andStorageInterface#incrementItems
- this also removes
incrementItem
,incrementItems
,decrementItem
,derementItems
events (pre
,post
andexception
)
- this also removes
- Every method now has native return types
- Every property now has native types
- Every method argument now has native types
ObjectCache
does not inherit theCallbackCache
pattern anymore
4.0.0
- Total issues resolved: 9
- Total pull requests resolved: 18
- Total contributors: 4
BC Break,Enhancement
- 317: Allow integer keys for some more methods thanks to @boesing
- 310: Enhance type strictness and add
final
to a bunch of classes thanks to @boesing - 308: Provide
Capabilities
as a read-only class thanks to @boesing - 296: Support for
laminas/laminas-servicemanager
v4 thanks to @boesing - 275: Introduce support for PSR-6 and PSR-16 v2 & v3 thanks to @boesing
- 273: Introduce
MetadataCapableInterface
thanks to @boesing - 14: reduce arguments by reference thanks to @weierophinney
Enhancement
- 316: Narrow some more string types to
non-empty-string
thanks to @boesing - 291: Remove
laminas/laminas-feed
dev-dependency thanks to @boesing - 290: Update
vimeo/psalm
to v5.20.0 thanks to @boesing - 289: Remove virtual package dependency of
laminas/laminas-cache-storage-implementation
thanks to @boesing - 277: Update
vimeo/psalm
to v5.16 once available thanks to @boesing
Bug,Enhancement
BC Break,Feature Removal
- 311: Remove unsupported array configuration structure (array shape) thanks to @boesing
- 309: Remove deprecated configuration support thanks to @boesing
BC Break
- 295: Introduce native type-hints and pass-by-reference values thanks to @boesing and @ravcz
- 294: Removal of
increment
anddecrement
functionality thanks to @boesing - 272: Remove dependency on real storage adapters and therefore benchmarks thanks to @boesing
Feature Request
BC Break,Bug
- 276:
Serializer
plugin has to serializetoken
to enableStorageInterface#checkAndSetItem
comparing the correct values thanks to @boesing