API Documentation

Cache/Backend/File.php

Zend Framework

LICENSE

This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@zend.com so we can send you a copy immediately.

category
Zend  
copyright
Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)  
license
New BSD License  
package
Zend_Cache  
subpackage
Zend_Cache_Backend  
version
$Id: File.php 24030 2011-05-09 22:10:00Z mabe $  

\Zend_Cache_Backend_File

Extends from
\Zend_Cache_Backend
Implements
\Zend_Cache_Backend_ExtendedInterface
copyright
Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)  
license
New BSD License  
package
Zend_Cache  
subpackage
Zend_Cache_Backend  

Properties

Propertyprotectedarray  $_metadatasArray= 'array'

Array of metadatas (each item is an associative array)

Default valuearrayDetails
Type
array
Propertyprotectedarray  $_options= 'array'

Available options

available options

=====> (string) cache_dir : - Directory where to put the cache files

=====> (boolean) file_locking : - Enable / disable file_locking - Can avoid cache corruption under bad circumstances but it doesn't work on multithread webservers and on NFS filesystems for example

=====> (boolean) read_control : - Enable / disable read control - If enabled, a control key is embeded in cache file and this key is compared with the one calculated after the reading.

=====> (string) read_control_type : - Type of read control (only if read control is enabled). Available values are : 'md5' for a md5 hash control (best but slowest) 'crc32' for a crc32 hash control (lightly less safe but faster, better choice) 'adler32' for an adler32 hash control (excellent choice too, faster than crc32) 'strlen' for a length only test (fastest)

=====> (int) hashed_directory_level : - Hashed directory level - Set the hashed directory structure level. 0 means "no hashed directory structure", 1 means "one level of directory", 2 means "two levels"... This option can speed up the cache only when you have many thousands of cache file. Only specific benchs can help you to choose the perfect value for you. Maybe, 1 or 2 is a good start.

=====> (int) hashed_directory_umask : - Umask for hashed directory structure

=====> (string) file_name_prefix : - prefix for cache files - be really carefull with this option because a too generic value in a system cache dir (like /tmp) can cause disasters when cleaning the cache

=====> (int) cache_file_umask : - Umask for cache files

=====> (int) metatadatas_array_max_size : - max size for the metadatas array (don't change this value unless you know what you are doing)

Default valuearrayDetails
Type
array

Methods

methodpublic___expire( string $id ) : void

PUBLIC METHOD FOR UNIT TESTING ONLY !

Force a cache record to expire

Parameters
Name Type Description
$id string cache id
methodpublic__construct( array $options = array ) : void

Constructor

Parameters
Name Type Description
$options array associative array of options
Throws
Exception Description
\Zend_Cache_Exception
methodprotected_clean( string $dir, string $mode = Zend_Cache, array $tags = array ) : boolean

Clean some cache records (protected method used for recursive stuff)

Available modes are : Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used) Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used) Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags ($tags can be an array of strings or a single string) Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags} ($tags can be an array of strings or a single string) Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags ($tags can be an array of strings or a single string)

Parameters
Name Type Description
$dir string Directory to clean
$mode string Clean mode
$tags array Array of tags
Returns
Type Description
boolean True if no problem
Throws
Exception Description
\Zend_Cache_Exception
methodprotected_cleanMetadatas( ) : void

Clear the metadatas array

methodprotected_delMetadatas( string $id ) : boolean

Drop a metadata record

Parameters
Name Type Description
$id string Cache id
Returns
Type Description
boolean True if no problem
methodprotected_expireTime(  $lifetime ) : int

Compute & return the expire time

Parameters
Name Type Description
$lifetime
Returns
Type Description
int expire time (unix timestamp)
methodprotected_file( string $id ) : string

Make and return a file name (with path)

Parameters
Name Type Description
$id string Cache id
Returns
Type Description
string File name (with path)
methodprotected_fileGetContents( string $file ) : string

Return the file content of the given file

Parameters
Name Type Description
$file string File complete path
Returns
Type Description
string File content (or false if problem)
methodprotected_fileNameToId( string $fileName ) : string

Transform a file name into cache id and return it

Parameters
Name Type Description
$fileName string File name
Returns
Type Description
string Cache id
methodprotected_filePutContents( string $file, string $string ) : boolean

Put the given string into the given file

Parameters
Name Type Description
$file string File complete path
$string string String to put in file
Returns
Type Description
boolean true if no problem
methodprotected_get(  $dir,  $mode,  $tags = array ) : void

Parameters
Name Type Description
$dir
$mode
$tags
methodprotected_getMetadatas( string $id ) : array|false

Get a metadatas record

Parameters
Name Type Description
$id string Cache id
Returns
Type Description
arrayfalse Associative array of metadatas
methodprotected_hash( string $data, string $controlType ) : string

Make a control key with the string containing datas

Parameters
Name Type Description
$data string Data
$controlType string

Type of control 'md5', 'crc32' or 'strlen'

Returns
Type Description
string Control key
Throws
Exception Description
\Zend_Cache_Exception
methodprotected_idToFileName( string $id ) : string

Transform a cache id into a file name and return it

Parameters
Name Type Description
$id string Cache id
Returns
Type Description
string File name
methodprotected_isGoodTmpDir( string $dir ) : boolean

Verify if the given temporary directory is readable and writable

Inherited from: \Zend_Cache_Backend::_isGoodTmpDir()
Parameters
Name Type Description
$dir string temporary directory
Returns
Type Description
boolean true if the directory is ok
methodprotected_isMetadatasFile( string $fileName ) : boolean

Check if the given filename is a metadatas one

Parameters
Name Type Description
$fileName string File name
Returns
Type Description
boolean True if it's a metadatas one
methodprotected_loadMetadatas( string $id ) : array|false

Load metadatas from disk

Parameters
Name Type Description
$id string Cache id
Returns
Type Description
arrayfalse Metadatas associative array
methodprotected_log( string $message,  $priority = 4 ) : void

Log a message at the WARN (4) priority.

Inherited from: \Zend_Cache_Backend::_log()
Parameters
Name Type Description
$message string
$priority
Throws
Exception Description
\Zend_Cache_Exception
methodprotected_loggerSanity( ) : void

Make sure if we enable logging that the Zend_Log class is available.

Inherited from: \Zend_Cache_Backend::_loggerSanity()

Create a default log object if none is set.

Throws
Exception Description
\Zend_Cache_Exception
methodprotected_metadatasFile( string $id ) : string

Make and return a file name (with path) for metadatas

Parameters
Name Type Description
$id string Cache id
Returns
Type Description
string Metadatas file name (with path)
methodprotected_path( string $id, boolean $parts = false ) : string

Return the complete directory path of a filename (including hashedDirectoryStructure)

Parameters
Name Type Description
$id string Cache id
$parts boolean if true, returns array of directory parts instead of single string
Returns
Type Description
string Complete directory path
methodprotected_recursiveMkdirAndChmod( string $id ) : boolean

Make the directory strucuture for the given id

Parameters
Name Type Description
$id string cache id
Returns
Type Description
boolean true
methodprotected_remove( string $file ) : boolean

Remove a file

If we can't remove the file (because of locks or any problem), we will touch the file to invalidate it

Parameters
Name Type Description
$file string Complete file path
Returns
Type Description
boolean True if ok
methodprotected_saveMetadatas( string $id, array $metadatas ) : boolean

Save metadatas to disk

Parameters
Name Type Description
$id string Cache id
$metadatas array Associative array
Returns
Type Description
boolean True if no problem
methodprotected_setMetadatas( string $id, array $metadatas, boolean $save = true ) : boolean

Set a metadatas record

Parameters
Name Type Description
$id string Cache id
$metadatas array Associative array of metadatas
$save boolean optional pass false to disable saving to file
Returns
Type Description
boolean True if no problem
methodprotected_test( string $id, boolean $doNotTestCacheValidity ) : boolean|mixed

Test if the given cache id is available (and still valid as a cache record)

Parameters
Name Type Description
$id string Cache id
$doNotTestCacheValidity boolean

If set to true, the cache validity won't be tested

Returns
Type Description
booleanmixed false (a cache is not available) or "last modified" timestamp (int) of the available cache record
methodpublicclean( string $mode = Zend_Cache, \tags $tags = array ) : boolean

Clean some cache records

Available modes are :

Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used) Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used) Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags ($tags can be an array of strings or a single string) Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags} ($tags can be an array of strings or a single string) Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags ($tags can be an array of strings or a single string)

Parameters
Name Type Description
$mode string clean mode
$tags \tags

array $tags array of tags

Returns
Type Description
boolean true if no problem
methodpublicgetCapabilities( ) : array

Return an associative array of capabilities (booleans) of the backend

The array must include these keys : - automatic_cleaning (is automating cleaning necessary) - tags (are tags supported) - expired_read (is it possible to read expired cache records (for doNotTestCacheValidity option for example)) - priority does the backend deal with priority when saving - infinite_lifetime (is infinite lifetime can work with this backend) - get_list (is it possible to get the list of cache ids and the complete list of tags)

Returns
Type Description
array associative of with capabilities
methodpublicgetFillingPercentage( ) : int

Return the filling percentage of the backend storage

Returns
Type Description
int integer between 0 and 100
Throws
Exception Description
\Zend_Cache_Exception
methodpublicgetIds( ) : array

Return an array of stored cache ids

Returns
Type Description
array array of stored cache ids (string)
methodpublicgetIdsMatchingAnyTags( array $tags = array ) : array

Return an array of stored cache ids which match any given tags

In case of multiple tags, a logical AND is made between tags

Parameters
Name Type Description
$tags array array of tags
Returns
Type Description
array array of any matching cache ids (string)
methodpublicgetIdsMatchingTags( array $tags = array ) : array

Return an array of stored cache ids which match given tags

In case of multiple tags, a logical AND is made between tags

Parameters
Name Type Description
$tags array array of tags
Returns
Type Description
array array of matching cache ids (string)
methodpublicgetIdsNotMatchingTags( array $tags = array ) : array

Return an array of stored cache ids which don't match given tags

In case of multiple tags, a logical OR is made between tags

Parameters
Name Type Description
$tags array array of tags
Returns
Type Description
array array of not matching cache ids (string)
methodpublicgetLifetime( int $specificLifetime ) : int

Get the life time

Inherited from: \Zend_Cache_Backend::getLifetime()

if $specificLifetime is not false, the given specific life time is used else, the global lifetime is used

Parameters
Name Type Description
$specificLifetime int
Returns
Type Description
int Cache life time
methodpublicgetMetadatas( string $id ) : array

Return an array of metadatas for the given cache id

The array must include these keys : - expire : the expire timestamp - tags : a string array of tags - mtime : timestamp of last modification time

Parameters
Name Type Description
$id string cache id
Returns
Type Description
array array of metadatas (false if the cache id is not found)
methodpublicgetTags( ) : array

Return an array of stored tags

Returns
Type Description
array array of stored tags (string)
methodpublicgetTmpDir( ) : string

Determine system TMP directory and detect if we have read access

Inherited from: \Zend_Cache_Backend::getTmpDir()

inspired from Zend_File_Transfer_Adapter_Abstract

Returns
Type Description
string
Throws
Exception Description
\Zend_Cache_Exception if unable to determine directory
methodpublicisAutomaticCleaningAvailable( ) : boolean

Return true if the automatic cleaning is available for the backend

Inherited from: \Zend_Cache_Backend::isAutomaticCleaningAvailable()

DEPRECATED : use getCapabilities() instead

Returns
Type Description
boolean
Details
deprecated
 
methodpublicload( string $id, boolean $doNotTestCacheValidity = false ) : string|false

Test if a cache is available for the given id and (if yes) return it (false else)

Note : return value is always "string" (unserialization is done by the core not by the backend)

Parameters
Name Type Description
$id string cache id
$doNotTestCacheValidity boolean

if set to true, the cache validity won't be tested

Returns
Type Description
stringfalse cached datas
methodpublicremove( string $id ) : boolean

Remove a cache record

Parameters
Name Type Description
$id string cache id
Returns
Type Description
boolean true if no problem
methodpublicsave( string $data, string $id, array $tags = array, int $specificLifetime = false ) : boolean

Save some string datas into a cache record

Note : $data is always "string" (serialization is done by the core not by the backend)

Parameters
Name Type Description
$data string Datas to cache
$id string Cache id
$tags array Array of strings, the cache record will be tagged by each string entry
$specificLifetime int

If != false, set a specific lifetime for this cache record (null => infinite lifetime)

Returns
Type Description
boolean true if no problem
methodpublicsetCacheDir( string $value, boolean $trailingSeparator = true ) : void

Set the cache_dir (particular case of setOption() method)

Parameters
Name Type Description
$value string
$trailingSeparator boolean If true, add a trailing separator is necessary
Throws
Exception Description
\Zend_Cache_Exception
methodpublicsetDirectives( array $directives ) : void

Set the frontend directives

Inherited from: \Zend_Cache_Backend_Interface::setDirectives()
Parameters
Name Type Description
$directives array assoc of directives
Throws
Exception Description
\Zend_Cache_Exception
methodpublicsetOption( string $name, mixed $value ) : void

Set an option

Inherited from: \Zend_Cache_Backend::setOption()
Parameters
Name Type Description
$name string
$value mixed
Throws
Exception Description
\Zend_Cache_Exception
methodpublictest( string $id ) : mixed

Test if a cache is available or not (for the given id)

Parameters
Name Type Description
$id string cache id
Returns
Type Description
mixed false (a cache is not available) or "last modified" timestamp (int) of the available cache record
methodpublictouch( string $id, int $extraLifetime ) : boolean

Give (if possible) an extra lifetime to the given cache id

Parameters
Name Type Description
$id string cache id
$extraLifetime int
Returns
Type Description
boolean true if ok
Documentation was generated by DocBlox 0.13.3.