index.rst 6.95 KB

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.