1.5.3 - 2024-04-02
- Fixed Redis TLL override on failure to add key
- Moved to PHPUnit >=10.x and attributes
1.5.2 - 2024-01-10
- Stampede: removed unnecessary wait caused by lingering stampede key
- Refactored tests for PHPUnit 10.x compat
1.5.1 - 2023-01-26
- Fixed Couchbase's updated expiration handling
1.5.0 - 2022-11-10
- Compatibility with psr/cache version 3
- Compatibility with psr/simple-cache version 3
- Type declarations everywhere
- Removed support for PHP versions <8.0
- Removed support for Couchbase SDK <3.0
- Removed support for APC (not APCu)
1.4.9 - 2022-11-10
- Added support for Couchbase v3.x & 4.x versions
- Added psr/cache & psr/simple-cache 2.0 compatibility to composer.json
- Fixed (invalid) APCUIterator check
- Improved handling of Memcached's untimely expiration purge
- Fixed Redis in-/decrement return value for non-existing values with negative expiration
- Fixed StampedeProtector lock time
- Dropped built-in server health check option with Couchbase SDK v3.x/4.x support
1.4.8 - 2021-01-27
- Added support for later Couchbase v2.x versions
- Fixed Flysystem support for long keys
- Fixed non-existing getMulti results with certain Redis versions
- Allow longer keys in MySQL-backed cache
- Made handling of binary values with PostgreSQL more robust
- Add support for Flysystem v2.x
- Fix PHP8 error with
cas
in transactional cache - Fix PHP8 warning in PostgreSQL
set
1.4.7 - 2019-08-30
- Updated Couchbase install instructions in PHP Docker images
- Updated
implode
parameter order for PHP7.4 compliance
1.4.6 - 2018-02-14
- Safeguard Apc::getMulti for
false
returned by apcu_fetch
1.4.5 - 2017-12-05
- Dockerize everything needed for testing adapters & versions
- Add test support for Couchbase 5.0
- Add makefile instructions
- Use more direct ON CONFLICT functionality for PostgreSQL sets
- Memcached::cas
$token
can be int as well as float - Fix obscure issue where
$value
is considerednull
- Count MemoryStore collections towards the memory limit
- Fix PSR SimpleCache to KeyValueStore TTL conversion logic
- Add more workarounds for Couchbase's imprecise expiration purging
1.4.4 - 2017-05-12
- Support Memcached>=3.0 new getMulti method signature
- Throw exceptions for Memcached getMulti false (= error) result
1.4.3 - 2017-03-01
- Include cache/integration-tests test suite for PSR-16
- Made APC store setMulti with integer keys
- Let APC getMulti return values for numerical keys
- Short-circuit getting/setting/deleting multiple keys
- Make sure SQLite treats numerical keys as strings, not numbers
- Support numerical keys with Couchbase
- Fix how Couchbase (failed to) handle negative TTLs
- Make Memcached delete-by-expiration more reliable
- Make HHVM work with numerical cache keys in Memcached::setMulti
- Fix Memcached::get for keys that would get encoded
- SQL adapters expire on the exact second, not one later
1.4.2 - 2017-02-07
- Stricter handling of invalid keys in Traversables passed to PSR-16
- Allow integers to be used as keys for PSR-16
- Treat a TTL of 0 as expired for PSR-16
- Always return true for PSR-16 deleteMultiple, even when item didn't exist
1.4.1 - 2017-01-03
- Return value of PSR-16 delete should always be true
- Improved PSR-16 checks for invalid (characters in) keys
1.4.0 - 2017-01-02
- Added support for collections
- Officialize psr/simple-cache support
1.3.1 - 2016-12-09
- Added $default param to PSR-16's
get()
- Added APCu support
- Strict argument checks for PSR-16 methods
- Return a boolean for PSR-16 delete, clear & deleteMulti
- Treat all PSR-16 TTL's as relative
- Renamed PSR-16
exists()
tohas()
- Fixed Redis handling of non-expiring ttls
- Removed PSR-16 CounterInterface & its methods
1.3.0 - 2016-09-20
- Add preliminary support for proposed PSR-16
- Throw exception when invalid object is fed to Item::expiresAt
- Don't cause PHP warnings when Redis connection fails on get/getMulti
- Stop using Couchbase's
counter
, which is not typesafe - Fixed Couchbase setMulti & deleteMulti failure return values
1.2.2 - 2016-05-09
- Make sure expired items are also stored (they may override existing value)
1.2.1 - 2016-04-05
- Made MySQL's value a LONGBLOB, which can store bigger values
1.2.0 - 2016-03-21
- Removed Taggable, since it seems
cache/taggable-cache
now does the same - Removed deprecated Filesystem adapter
1.1.0 - 2016-02-01
- Added sharding class
- MemoryStore no longer evicts everything if infinite memory is allocated to PHP
1.0.10 - 2016-01-22
- Don't let expired deferred items appear to have hit cache
1.0.9 - 2016-01-14
- Add cache/taggable-cache implementation that works for all PSR-6 libraries
- Include cache/integration-tests test suite for PSR-6
- Revamped unit tests: no longer use dataProvider, but provide grouped suites
- Worked around APC's weird behavior of only clearing expires per page request
- Store
get
result in buffer if it wasn't in there already - Encode certain characters in Memcached keys
- Serialize arrays & objects in Couchbase, because it forgets their data type
1.0.8 - 2016-01-12
- Deferred items now register as hit in psr/cache Item
- Non-string keys now fail in psr/cache Pool
- Deleting non-existing keys from cache also return true in psr/cache Pool
- Auto-commit deferred items on psr/cache Pool destruction
- If psr/cache Item::expiresAfter is passed null explicitly, default to forever
- SQL adapters now also return same data type as was stored for numerics
- Fixed psr/cache Pool::save return value when storing a non-existing Item
1.0.7 - 2015-12-23
- Properly support PHPUnit's --filter to narrow down adapters
- Distinguish between
false
& no value in cache, where $token should be null
1.0.6 - 2015-12-14
- composer.json now requires
psr/cache
- Travis scripts no longer install services but user Docker containers
- All
Psr6
methods accepting$key
now throw InvalidArgumentException
- Removed included
Psr\Cache
files
- Fixed Couchbase
flush
return value
1.0.5 - 2015-11-17
- Added stampede protection
- Made Redis
multi/exec
consistently return array
1.0.4 - 2015-11-04
- Added
Psr6\Pool::hasItem
, per PSR-6 spec - Added
Psr6\Pool::deleteItem
, per PSR-6 spec
Psr6\Pool::deleteItems
returns result instead ofstatic
, per PSR-6 specPsr6\Pool::save
returns result instead ofstatic
, per PSR-6 specPsr6\Pool::saveDeferred
returns result instead ofstatic
, per PSR-6 spec
- Removed
Psr6\Item::exists
, per PSR-6 spec - Removed
Psr6\Item::getExpiration
, per PSR-6 spec
- Make sure CAS tokens are null if value doesn't exist
- Normalized CAS token result on HHVM
- Restored original Filesystem adapter (for PHP5.3 B/C), but still deprecated
1.0.3 - 2015-10-21
- Added
league/flysystem
adapter
- Deprecated Filesystem adapter
1.0.2 - 2015-10-17
- Optimized transactions (e.g. multiple
set
can be combined intosetMulti
) - Transaction rollback now restores original values, instead of clearing them
- When doing
set
on existing value in MemoryStore, don't doublecount the size - Fixed SQL return values when replacement value is the same
1.0.1 - 2015-10-14
- Added
Psr6\Item::expiresAt
, per PSR-6 spec - Added
Psr6\Item::expiresAfter
, per PSR-6 spec - Added memory limit to MemoryStore & evict data, to prevent it from crashing
- Execute tests/Adapters/*, there can be adapter-specific tests too
- Implement nested transactions
- Explicitly test file existence instead of using
@file_get_contents
- Removed
Psr6\Item::setExpiration
, per PSR-6 spec
- SQL adapter returns early if there's no data to be deleted
1.0.0 - 2015-09-04
- Apc adapter
- Couchbase adapter
- Filesystem adapter
- Memcached adapter
- MySQL adapter
- PostgreSQL adapter
- Redis adapter
- SQLite adapter
- MemoryStore adapter, for testing
- Buffered cache, to prevent multiple lookups for same value
- Transactional cache, to guarantee consistency of storing multiple values
- PSR-6 compatible interface for all of the above