Implemented PSR-6 interfaces.
Removed Driver::setOptions($options)
in favor of Driver::constructor($options)
Removed deprecated DriverList::getDrivers function.
Removed deprecated invalidation constants in the Item class.
Removed SQLite Extension support (SQLite3 is still available).
The set
function no longer persists data.
Removed expiration time for set
function
Added expiresAt
and expiresAfter
functions to the Item class.
getExpiration
to return current datetime when no record exists.
Added save
function to PoolInterface.
Changed getItemIterator
to getItems
RuntimeException now extends from \RuntimeException
Added isHit
function to ItemInterface.
Added the hasItem
function to the Pool, which should mostly be avoided.
Renamed Pool::purge
to Pool::clear
.
Added Pool::deleteItem
and Pool::deleteItems
.
Removed legacy methods for defining keys- keys must be defined as strings.
Added support for "APCU" functions.
Removed sqlite2 support (sqlite3 is still supported).
Fixed bug where the default filesystem driver path would be created even when a path was specified.
Updated development dependencies.
Required PHP7 tests to pass.
Dropped support for PHP 5.3.
Updated dependencies.
Removed various PHP warnings (exceptions are still thrown where needed).
Various optimizations, such as reduced function calls during repeated operations.
Added "isPersistent" method to driver classes.
Added an alternative format than native PHP for the Filesystem Driver.
Improved performance of Filesystem clear operations.
Better commenting on files generated by Filesystem driver.
Added work around for HHVM APCIterator bug.
Improved Redis error handling in the event of a lost or disconnected server.
Improved Redis and Memcached persistent connection support.
Added support for AWS autodiscovery functionality in Memcached.
Refactored PDO and SQLite "isAvailable" functions to prevent notices when the PDO extension is not present.
Docblock and commenting improvements.
Updated dependency versions (only affects development code).
Full HHVM Support
Removed xcache experimental driver.
Removed PEAR Support
Internal Improvements- DocBlock, Explicitly Defined Variables, Commenting.
Enforcement of code standards in test suite.
FileSystem - Improved Storage and Retrieval
Memcache - Altered subdrivers constructors and initialization.
SQLite - Reduced duplicate code amongst PDO subdrivers.
Updated Test Suite to make it simple to run again custom Pool or Item objects other than the build in ones.
Redis and Memcache constructors now take both forms (associative array or indexed array) when setting server configuration. Originally Memcache accepted an indexed list of settings while Redis expected an associative array.
Removed constructor requirements from DriverInterface and added setOptions to replace it. Please note this means all drivers no longer take their options through the constructor, but expect them through the setOptions method.
Replaced "Item->setDriver" with "Item->setPool" function. This should have no effect on typical consumers of this library but may effect those extending the Item or Pool class.
Renamed Drivers class to DriversList to prevent confusion when talking about "Drivers".
Added DriversList::getAllDrivers which returns an unfiltered list of registered drivers.
Added DriversList::getAvailableDrivers to replace the existing DriversList::getDrivers, which is now deprecated.
Added "setDriver(DriverInterface $driver)" and "setKey($key, $namespace = null)" functions to the Item Interface. These functions are used by Pool to initialize the Item class.
Added "setNamespace($namespace = null)" and "getNamespace()" functions to the Pool class for.
Added "getCreation()" and "getExpiration()" functions to the Item class.
Added internal function Utilities::checkFileSystemPermissions.
Moved Item::SP* Constants to new Invalidation class and Deprecated the existing Item::SP* constants.
"PRECOMPUTE" is now the default method for dealing with stale data.
Fixed a bug where OSX would be identified as Windows and path names were limited to that system's length.
Fixed a bug in the Pool class where setItemClass would throw an exception.
Introduced HHVM testing capabilities into the test suite.
Removed HHVM specific fatal errors.
Fixed Bug which prevented some file based caches from purging or flushing on Windows based systems.
Fixed Bug in the Filesystem cache which caused a fatal error when certain keys were used.
Logging Support
The Pool and Item classes can now have PSR-3 compliant Logging libraries injected into them through the setLogger($logger) functions. Any logger injected into the Pool class will get injected into any Items it generates.
Pool and Item Interfaces
The Stash\Pool and Stash\Item classes now implement the new Stash\Interface\Pool and Stash\interface\Item inferaces.
Extend Cache renamed and given a ttl
The Stash\Item::extendCache() function is now Stash\Item::extend($ttl = null).
Formatting changes, PSR-1 and PSR-2 compliant.
Added "setItemClass" function to the Pool class
This allows new Item classes to be generated, as long as they following the new interface.