Introduction
Doctrine Cache is a library that provides an interface for caching data.
It comes with implementations for some of the most popular caching data
stores. Here is what the Cache interface looks like.
Here is an example that uses Memcache.
Drivers
Doctrine ships with several common drivers that you can easily use. Below you can find information about all the available drivers.
ApcCache
The ApcCache driver uses the apc_fetch, apc_exists, etc. functions that come
with PHP so no additional setup is required in order to use it.
ApcuCache
The ApcuCache driver uses the apcu_fetch, apcu_exists, etc. functions that come
with PHP so no additional setup is required in order to use it.
ArrayCache
The ArrayCache driver stores the cache data in PHPs memory and is not persisted anywhere.
This can be useful for caching things in memory for a single process when you don't need
the cache to be persistent across processes.
ChainCache
The ChainCache driver lets you chain multiple other drivers together easily.
CouchbaseBucketCache
The CouchbaseBucketCache driver uses Couchbase to store the cache data.
FilesystemCache
The FilesystemCache driver stores the cache data on the local filesystem.
MemecacheCache
The MemcacheCache drivers stores the cache data in Memcache.
MemcachedCache
The MemcachedCache drivers stores the cache data in Memcached.
MongoDBCache
The MongoDBCache drivers stores the cache data in a MongoDB collection.
PhpFileCache
The PhpFileCache driver stores the cache data on the local filesystem like the
FilesystemCache driver except the data is serialized using the serialize()
and unserialize() functions available in PHP. The files are included so this means
that the data can be cached in PHPs opcache.
PredisCache
The PredisCache driver stores the cache data in Redis
and depends on the predis/predis package which can be installed with composer.
Then you can use the Predis\Client class to pass to the PredisCache class.
RedisCache
The RedisCache driver stores the cache data in Redis and depends on the
phpredis extension which can be found here.
RiakCache
The RiakCache driver stores the cache data in Riak and depends on the
riak extension which can be found here.
SQLite3Cache
The SQLite3Cache driver stores the cache data in a SQLite database and depends on the
sqlite3 extension which can be found here.
VoidCache
The VoidCache driver does not store the cache data anywhere. This can
be useful for test environments where you don't want to cache the data
anywhere but need to satisfy the dependency for the Doctrine\Common\Cache\Cache
interface.
WinCacheCache
The WinCacheCache driver uses the wincache_ucache_get, wincache_ucache_exists, etc. functions that come
with the wincache extension which can be found here.
XcacheCache
The XcacheCache driver uses functions that come with the xcache
extension which can be found here.
ZendDataCache
The ZendDataCache driver uses the Zend Data Cache API available in the Zend Platform.
Custom Drivers
If you want to implement your own cache driver, you just need to implement
the Doctrine\Common\Cache\Cache interface. Here is an example implementation
skeleton.