API Documentation

Cache/Backend/File.php

Includes Classes 
category
Zend
copyright
Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
license
http://framework.zend.com/license/new-bsd New BSD License
package
Zend_Cache
subpackage
Zend_Cache_Backend
version
$Id: File.php 21642 2010-03-25 17:07:02Z mabe $
Classes
Zend_Cache_Backend_File

Description

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.

Zend_Cache_Backend_File

Extends from
Zend_Cache_Backend
Implements
Zend_Cache_Backend_ExtendedInterface
copyright
Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
license
http://framework.zend.com/license/new-bsd New BSD License
package
Zend_Cache
subpackage
Zend_Cache_Backend
Properties
$_options
$_metadatasArray
Methods
__construct
setCacheDir
load
test
save
remove
clean
getIds
getTags
getIdsMatchingTags
getIdsNotMatchingTags
getIdsMatchingAnyTags
getFillingPercentage
getMetadatas
touch
getCapabilities
___expire
_getMetadatas
_setMetadatas
_delMetadatas
_cleanMetadatas
_loadMetadatas
_saveMetadatas
_metadatasFile
_isMetadatasFile
_remove
_clean
_get
_expireTime
_hash
_idToFileName
_file
_path
_recursiveMkdirAndChmod
_test
_fileGetContents
_filePutContents
_fileNameToId

Description

Properties

$_metadatasArray

array $_metadatasArray = 'array'

Array of metadatas (each item is an associative array)

Details

$_metadatasArray
array
visibility
protected
default
array
final
false
static
false

$_options

array $_options = 'array'

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)

Details

$_options
array
available options
visibility
protected
default
array
final
false
static
false

Methods

___expire

___expire( string $id ) :

PUBLIC METHOD FOR UNIT TESTING ONLY !

Force a cache record to expire

Arguments
$id
string
cache id
Details
visibility
public
final
false
static
false

__construct

__construct( array $options = array ) : void

Constructor

Arguments
$options
array
associative array of options
Details
visibility
public
final
false
static
false
throws

_clean

_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)

Arguments
$dir
string
Directory to clean
$mode
string
Clean mode
$tags
array
Array of tags
Output
boolean
True if no problem
Details
visibility
protected
final
false
static
false
throws

_cleanMetadatas

_cleanMetadatas( ) : void

Clear the metadatas array

Details
visibility
protected
final
false
static
false

_delMetadatas

_delMetadatas( string $id ) : boolean

Drop a metadata record

Arguments
$id
string
Cache id
Output
boolean
True if no problem
Details
visibility
protected
final
false
static
false

_expireTime

_expireTime(  $lifetime ) : int

Compute & return the expire time

Arguments
$lifetime
Output
int
expire time (unix timestamp)
Details
visibility
protected
final
false
static
false

_file

_file( string $id ) : string

Make and return a file name (with path)

Arguments
$id
string
Cache id
Output
string
File name (with path)
Details
visibility
protected
final
false
static
false

_fileGetContents

_fileGetContents( string $file ) : string

Return the file content of the given file

Arguments
$file
string
File complete path
Output
string
File content (or false if problem)
Details
visibility
protected
final
false
static
false

_fileNameToId

_fileNameToId( string $fileName ) : string

Transform a file name into cache id and return it

Arguments
$fileName
string
File name
Output
string
Cache id
Details
visibility
protected
final
false
static
false

_filePutContents

_filePutContents( string $file, string $string ) : boolean

Put the given string into the given file

Arguments
$file
string
File complete path
$string
string
String to put in file
Output
boolean
true if no problem
Details
visibility
protected
final
false
static
false

_get

_get(  $dir,  $mode,  $tags = array ) :
Arguments
$dir
$mode
$tags
Details
visibility
protected
final
false
static
false

_getMetadatas

_getMetadatas( string $id ) : array|false

Get a metadatas record

Arguments
$id
string
Cache id
Output
array|false
Associative array of metadatas
Details
visibility
protected
final
false
static
false

_hash

_hash( string $data, string $controlType ) : string

Make a control key with the string containing datas

Arguments
$data
string
Data
$controlType
string
Type of control 'md5', 'crc32' or 'strlen'
Output
string
Control key
Details
visibility
protected
final
false
static
false
throws

_idToFileName

_idToFileName( string $id ) : string

Transform a cache id into a file name and return it

Arguments
$id
string
Cache id
Output
string
File name
Details
visibility
protected
final
false
static
false

_isMetadatasFile

_isMetadatasFile( string $fileName ) : boolean

Check if the given filename is a metadatas one

Arguments
$fileName
string
File name
Output
boolean
True if it's a metadatas one
Details
visibility
protected
final
false
static
false

_loadMetadatas

_loadMetadatas( string $id ) : array|false

Load metadatas from disk

Arguments
$id
string
Cache id
Output
array|false
Metadatas associative array
Details
visibility
protected
final
false
static
false

_metadatasFile

_metadatasFile( string $id ) : string

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

Arguments
$id
string
Cache id
Output
string
Metadatas file name (with path)
Details
visibility
protected
final
false
static
false

_path

_path( string $id, boolean $parts = false ) : string

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

Arguments
$id
string
Cache id
$parts
boolean
if true, returns array of directory parts instead of single string
Output
string
Complete directory path
Details
visibility
protected
final
false
static
false

_recursiveMkdirAndChmod

_recursiveMkdirAndChmod( string $id ) : boolean

Make the directory strucuture for the given id

Arguments
$id
string
cache id
Output
boolean
true
Details
visibility
protected
final
false
static
false

_remove

_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

Arguments
$file
string
Complete file path
Output
boolean
True if ok
Details
visibility
protected
final
false
static
false

_saveMetadatas

_saveMetadatas( string $id, array $metadatas ) : boolean

Save metadatas to disk

Arguments
$id
string
Cache id
$metadatas
array
Associative array
Output
boolean
True if no problem
Details
visibility
protected
final
false
static
false

_setMetadatas

_setMetadatas( string $id, array $metadatas, boolean $save = true ) : boolean

Set a metadatas record

Arguments
$id
string
Cache id
$metadatas
array
Associative array of metadatas
$save
boolean
optional pass false to disable saving to file
Output
boolean
True if no problem
Details
visibility
protected
final
false
static
false

_test

_test( string $id, boolean $doNotTestCacheValidity ) : boolean|mixed

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

Arguments
$id
string
Cache id
$doNotTestCacheValidity
boolean
If set to true, the cache validity won't be tested
Output
boolean|mixed
false (a cache is not available) or "last modified" timestamp (int) of the available cache record
Details
visibility
protected
final
false
static
false

clean

clean( string $mode = Zend_Cache, tags $tags = array ) : boolean

Clean some cache records

Available modes are : 'all' (default) => remove all cache entries ($tags is not used) 'old' => remove too old cache entries ($tags is not used) 'matchingTag' => remove cache entries matching all given tags ($tags can be an array of strings or a single string) 'notMatchingTag' => remove cache entries not matching one of the given tags ($tags can be an array of strings or a single string) 'matchingAnyTag' => remove cache entries matching any given tags ($tags can be an array of strings or a single string)

Arguments
$mode
string
clean mode
$tags
tags
array $tags array of tags
Output
boolean
true if no problem
Details
visibility
public
final
false
static
false

getCapabilities

getCapabilities( ) : 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)

Output
array
associative of with capabilities
Details
visibility
public
final
false
static
false

getFillingPercentage

getFillingPercentage( ) : int

Return the filling percentage of the backend storage

Output
int
integer between 0 and 100
Details
visibility
public
final
false
static
false
throws

getIds

getIds( ) : array

Return an array of stored cache ids

Output
array
array of stored cache ids (string)
Details
visibility
public
final
false
static
false

getIdsMatchingAnyTags

getIdsMatchingAnyTags( 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

Arguments
$tags
array
array of tags
Output
array
array of any matching cache ids (string)
Details
visibility
public
final
false
static
false

getIdsMatchingTags

getIdsMatchingTags( 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

Arguments
$tags
array
array of tags
Output
array
array of matching cache ids (string)
Details
visibility
public
final
false
static
false

getIdsNotMatchingTags

getIdsNotMatchingTags( 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

Arguments
$tags
array
array of tags
Output
array
array of not matching cache ids (string)
Details
visibility
public
final
false
static
false

getMetadatas

getMetadatas( 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

Arguments
$id
string
cache id
Output
array
array of metadatas (false if the cache id is not found)
Details
visibility
public
final
false
static
false

getTags

getTags( ) : array

Return an array of stored tags

Output
array
array of stored tags (string)
Details
visibility
public
final
false
static
false

load

load( string $id, boolean $doNotTestCacheValidity = false ) : string|false

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

Arguments
$id
string
cache id
$doNotTestCacheValidity
boolean
if set to true, the cache validity won't be tested
Output
string|false
cached datas
Details
visibility
public
final
false
static
false

remove

remove( string $id ) : boolean

Remove a cache record

Arguments
$id
string
cache id
Output
boolean
true if no problem
Details
visibility
public
final
false
static
false

save

save( 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)

Arguments
$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)
Output
boolean
true if no problem
Details
visibility
public
final
false
static
false

setCacheDir

setCacheDir( string $value, boolean $trailingSeparator = true ) : void

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

Arguments
$value
string
$trailingSeparator
boolean
If true, add a trailing separator is necessary
Details
visibility
public
final
false
static
false
throws

test

test( string $id ) : mixed

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

Arguments
$id
string
cache id
Output
mixed
false (a cache is not available) or "last modified" timestamp (int) of the available cache record
Details
visibility
public
final
false
static
false

touch

touch( string $id, int $extraLifetime ) : boolean

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

Arguments
$id
string
cache id
$extraLifetime
int
Output
boolean
true if ok
Details
visibility
public
final
false
static
false
Documentation was generated by DocBlox.