3.0.0
Backwards incompatible release (major)
laminas-cache-storage-adapter-filesystem
3.0.0 is here and finally adds native types everywhere, adds support for psr/cache
and psr/simple-cache
v2 & v3, supports laminas/laminas-cache
v4 and introduces an all new metadata and persistence logic. The Filesystem
does now persist the value as a serialized string along w…
Backwards incompatible release (major)
laminas-cache-storage-adapter-filesystem
3.0.0 is here and finally adds native types everywhere, adds support for psr/cache
and psr/simple-cache
v2 & v3, supports laminas/laminas-cache
v4 and introduces an all new metadata and persistence logic. The Filesystem
does now persist the value as a serialized string along with the expiry date so that cache items can now have dedicated TTLs.
Added
- Dedicated
Metadata
object forFilesystem#getMetadata
- Adds support for
psr/cache
andpsr/simple-cache
v2 & v3 by introducing TTL per-item handling Filesystem
now allows passing aClockInterface
via its constructor- New option to configure unserializable classes (
unserializable_classes
) which can be passed as aFilesystem
option asboolean
or anon-empty-list<class-string>
value. Defaults totrue
and can be modified according to the unserialize function documentation (value is passed toallowed_classes
option ofunserialize
). This option is only used when there is noSerializer
plugin attached to the storage adapter FilesystemInteractionInterface
does now provide a new methodgetFirstLineOfFile
to have a performant way to read the cache expiry information without loading the whole file into memory
Changed
- Filesystem adapter now supports per-item TTL and thus, the TTL is calculated
on-write
rather thanon-read
- The
Filesystem
adapter now uses.cache
suffix which is not configurable anymore (used to be.dat
) as the old.dat
files might not be compatible anymore. This will probably introduce problems in projects which rely on existing files which are not generated when these are missing. It is also mandatory that if caches are created cross-project, that both projects use the same adapter version. Please keep this in mind when upgrading FilesystemOptions
does now prevent projects from updating the key pattern, the key pattern is fixed and must not changeFilesystemOptions
has a modified key pattern and now allows dots (.
) in cache keys. This is mandatory to have proper PSR-6 support which requires caches to supportA-Z
,a-z
,0-9
,_
, and.
Filesystem
adapter now stores values as serialized strings within the cache file in case that there is noSerializer
plugin attached to the adapter
Removed
Filesystem::METADATA_ATIME
constant, useMetadata#lastAccessTime
insteadFilesystem::METADATA_CTIME
constant, useMetadata#creationTime
insteadFilesystem::METADATA_MTIME
constant, useMetadata#lastModifiedTime
insteadFilesystem::METADATA_FILESIZE
constant, useMetadata#filesize
insteadFilesystem::METADATA_FILESPEC
constant, useMetadata#filespec
insteadFilesystemOptions#setSuffix
as the suffix is not configurable anymoreFilesystemOptions#getSuffix
as the suffix is not configurable anymoreFilesystemOptions#setTagSuffix
as the tag suffix is not configurable anymoreFilesystemOptions#getTagSuffix
as the tag suffix is not configurable anymoreFilesystemInteractionInterface#umask
as it was not usedFilesystemInteractionInterface#touch
as it is not used anymore
This milestone is closed.
No open issues remain. View closed issues or see open milestones in this repository.