2015-08-17 17:00:26 -07:00
< ? php
/*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* " AS IS " AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT
* LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL ,
* SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT
* LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE ,
* DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
* ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the MIT license . For more information , see
* < http :// www . doctrine - project . org >.
*/
namespace Doctrine\Common\Cache ;
/**
* Interface for cache drivers .
*
* @ link www . doctrine - project . org
* @ since 2.0
* @ author Benjamin Eberlei < kontakt @ beberlei . de >
* @ author Guilherme Blanco < guilhermeblanco @ hotmail . com >
* @ author Jonathan Wage < jonwage @ gmail . com >
* @ author Roman Borschel < roman @ code - factory . org >
* @ author Fabio B . Silva < fabio . bat . silva @ gmail . com >
2015-10-08 11:40:12 -07:00
* @ author Kévin Dunglas < dunglas @ gmail . com >
2015-08-17 17:00:26 -07:00
*/
interface Cache
{
const STATS_HITS = 'hits' ;
const STATS_MISSES = 'misses' ;
const STATS_UPTIME = 'uptime' ;
const STATS_MEMORY_USAGE = 'memory_usage' ;
const STATS_MEMORY_AVAILABLE = 'memory_available' ;
/**
* Only for backward compatibility ( may be removed in next major release )
*
* @ deprecated
*/
const STATS_MEMORY_AVAILIABLE = 'memory_available' ;
/**
* Fetches an entry from the cache .
*
* @ param string $id The id of the cache entry to fetch .
*
* @ return mixed The cached data or FALSE , if no cache entry exists for the given id .
*/
2015-10-08 11:40:12 -07:00
public function fetch ( $id );
2015-08-17 17:00:26 -07:00
/**
* Tests if an entry exists in the cache .
*
* @ param string $id The cache id of the entry to check for .
*
* @ return boolean TRUE if a cache entry exists for the given cache id , FALSE otherwise .
*/
2015-10-08 11:40:12 -07:00
public function contains ( $id );
2015-08-17 17:00:26 -07:00
/**
* Puts data into the cache .
*
* @ param string $id The cache id .
* @ param mixed $data The cache entry / data .
* @ param int $lifeTime The cache lifetime .
* If != 0 , sets a specific lifetime for this cache entry ( 0 => infinite lifeTime ) .
*
* @ return boolean TRUE if the entry was successfully stored in the cache , FALSE otherwise .
*/
2015-10-08 11:40:12 -07:00
public function save ( $id , $data , $lifeTime = 0 );
2015-08-17 17:00:26 -07:00
/**
* Deletes a cache entry .
*
* @ param string $id The cache id .
*
* @ return boolean TRUE if the cache entry was successfully deleted , FALSE otherwise .
*/
2015-10-08 11:40:12 -07:00
public function delete ( $id );
2015-08-17 17:00:26 -07:00
/**
* Retrieves cached information from the data store .
*
* The server ' s statistics array has the following values :
*
* - < b > hits </ b >
* Number of keys that have been requested and found present .
*
* - < b > misses </ b >
* Number of items that have been requested and not found .
*
* - < b > uptime </ b >
* Time that the server is running .
*
* - < b > memory_usage </ b >
* Memory used by this server to store items .
*
* - < b > memory_available </ b >
* Memory allowed to use for storage .
*
* @ since 2.2
*
* @ return array | null An associative array with server ' s statistics if available , NULL otherwise .
*/
2015-10-08 11:40:12 -07:00
public function getStats ();
2015-08-17 17:00:26 -07:00
}