v0.12.1: The Refactoring
This release is designed specifically to make integrating, extending and developing Stash easier. Although there have been some API additions, the bulk of the work is behind the scenes. That being said we've pushed in a few BC breaks that we've been meaning to make for awhile, so please review the changelog carefully (especially if you have custom drivers or specialized code for initializing them).
Major Updates:
- 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.
API Changes:
- 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.