## Apache Zeta Components Manual :: Docs For Class ezcCacheStorageFileApcArray

### Cache::ezcCacheStorageFileApcArray

### Class ezcCacheStorageFileApcArray

This class is a replacement for the ezcCacheStorageFileArray class. Tries to serve data from a local APC cache if possible.

Options for this class are defined in ezcCacheStorageFileApcArrayOptions.

Source for this file: /Cache/src/storage/apc/apc_array.php

    ezcCacheStorage
       |
       --ezcCacheStorageMemory
          |
          --ezcCacheStorageApc
             |
             --ezcCacheStorageFileApcArray

Version: | //autogentag//

### Inherited Constants

From ezcCacheStorageApc:
`ezcCacheStorageApc::BACKEND_NAME` | The backend name.
`ezcCacheStorageApc::REGISTRY_NAME` | The registry name.

### Inherited Member Variables

From ezcCacheStorageMemory
protected | `ezcCacheStorageMemory::$backend`
protected | `ezcCacheStorageMemory::$backendName`
protected | `ezcCacheStorageMemory::$registry`
protected | `ezcCacheStorageMemory::$registryName`
protected | `ezcCacheStorageMemory::$searchRegistry`
From ezcCacheStorage
protected | `ezcCacheStorage::$properties`

### Method Summary

public ezcCacheStorageFileApcArray | `__construct( $location , [ $options = array()] )` Creates a new cache storage in the given location. The location in case of this storage class must a valid file system directory.
protected int | `calcLifetime( $filename , [ $useApc = false] )` Calculates the lifetime remaining for a cache object.
public void | `delete( [ $id = null] , [ $attributes = array()] , [ $search = false] )` Deletes the data associated with $id or $attributes from the cache.
protected mixed | `fetchData( $filename , [ $useApc = false] )` Fetches the data from the cache.
protected mixed | `fetchObject( $filename )` Fetches the object from the cache.
protected mixed | `prepareData( $data , [ $useApc = false] )` Wraps the data in order to be stored in APC ($useApc = true) or on the file system ($useApc = false).
public mixed | `restore( $id , [ $attributes = array()] , [ $search = false] )` Restores the data from the cache.
public string | `store( $id , $data , [ $attributes = array()] )` Stores data to the cache storage.
protected void | `validateLocation( )` Checks the path in the location property exists, and is read-/writable. It throws an exception if not.

### Inherited Methods

From ezcCacheStorageApc
public ezcCacheStorageApc | `ezcCacheStorageApc::__construct()` Creates a new cache storage in the given location.
protected abstract mixed | `ezcCacheStorageApc::fetchData()` Fetches data from the cache.
protected abstract mixed | `ezcCacheStorageApc::prepareData()` Prepares the data for storing.
public void | `ezcCacheStorageApc::setOptions()` Return the currently set options.
From ezcCacheStorageMemory
public ezcCacheStorageMemory | `ezcCacheStorageMemory::__construct()` Creates a new cache storage in the given location.
protected int | `ezcCacheStorageMemory::calcLifetime()` Calculates the lifetime remaining for a cache object.
public int | `ezcCacheStorageMemory::countDataItems()` Returns the number of items in the cache matching a certain criteria.
public void | `ezcCacheStorageMemory::delete()` Deletes the data associated with $id or $attributes from the cache.
protected void | `ezcCacheStorageMemory::fetchSearchRegistry()` Fetches the search registry from the backend or creates it if empty.
protected string | `ezcCacheStorageMemory::generateAttrStr()` Generates a string from the $attributes array.
public string | `ezcCacheStorageMemory::generateIdentifier()` Generates the storage internal identifier from ID and attributes.
public int | `ezcCacheStorageMemory::getRemainingLifetime()` Returns the time in seconds which remains for a cache object, before it gets outdated. In case the cache object is already outdated or does not exists, this method returns 0.
public void | `ezcCacheStorageMemory::lock()` Acquire a lock on the storage.
public array(string) | `ezcCacheStorageMemory::purge()` Purge outdated data from the storage.
protected void | `ezcCacheStorageMemory::registerIdentifier()` Registers an identifier to facilitate searching.
public void | `ezcCacheStorageMemory::reset()` Reset the complete storage.
public mixed | `ezcCacheStorageMemory::restore()` Restores the data from the cache.
public ezcCacheStackMetaData | `ezcCacheStorageMemory::restoreMetaData()` Restores and returns the meta data struct.
protected array(mixed) | `ezcCacheStorageMemory::search()` Searches the storage for data defined by ID and/or attributes.
public string | `ezcCacheStorageMemory::store()` Stores data to the cache storage under the key $id.
public void | `ezcCacheStorageMemory::storeMetaData()` Stores the given meta data struct.
protected void | `ezcCacheStorageMemory::storeSearchRegistry()` Stores the search registry in the backend.
public void | `ezcCacheStorageMemory::unlock()` Release a lock on the storage.
protected void | `ezcCacheStorageMemory::unRegisterIdentifier()` Un-registers a previously registered identifier.
protected void | `ezcCacheStorageMemory::validateLocation()` Checks if the location property is valid.
From ezcCacheStorage
public ezcCacheStorage | `ezcCacheStorage::__construct()` Creates a new cache storage in the given location.
public abstract int | `ezcCacheStorage::countDataItems()` Return the number of items in the cache matching a certain criteria.
public abstract void | `ezcCacheStorage::delete()` Delete data from the cache.
public string | `ezcCacheStorage::getLocation()` Returns the location.
public ezcCacheStorageOptions | `ezcCacheStorage::getOptions()` Return the currently set options.
public abstract int | `ezcCacheStorage::getRemainingLifetime()` Returns the time ( in seconds ) that remains for a cache object, before it gets outdated. In case the cache object is already outdated or does not exist, this method returns 0.
public abstract mixed | `ezcCacheStorage::restore()` Restore data from the cache.
public void | `ezcCacheStorage::setOptions()` Set new options.
public abstract string | `ezcCacheStorage::store()` Store data to the cache storage.
protected abstract void | `ezcCacheStorage::validateLocation()` Checks if the location property is valid.

### Methods

#### __construct

ezcCacheStorageFileApcArray __construct( string $location , [ $options = array()] )

Creates a new cache storage in the given location. The location in case of this storage class must a valid file system directory.

Options can contain the 'ttl' (Time-To-Live). This is per default set to 1 day. The option 'permissions' can be used to define the file permissions of created cache items.

For details about the options see ezcCacheStorageFileApcArrayOptions.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$location` | string | Path to the cache location. Must be a valid path
`$options` | array(string=>string) | Options for the cache storage

##### Exceptions:

Type | Description
--- | ---
`ezcBasePropertyNotFoundException` | If you tried to set a non-existent option value.

##### Redefinition of:

Method | Description
--- | ---
`ezcCacheStorageApc::__construct()` | Creates a new cache storage in the given location.

#### calcLifetime

int calcLifetime( string $filename , [bool $useApc = false] )

Calculates the lifetime remaining for a cache object.

If the TTL option is set to false, this method will always return 1 for existing items.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$filename` | string | The file to calculate the remaining lifetime for
`$useApc` | bool | Use APC or not

##### Redefinition of:

Method | Description
--- | ---
`ezcCacheStorageMemory::calcLifetime()` | Calculates the lifetime remaining for a cache object.

#### delete

void delete( [string $id = null] , [array(string=>string) $attributes = array()] , [bool $search = false] )

Deletes the data associated with $id or $attributes from the cache.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$id` | string | The item ID to purge
`$attributes` | array(string=>string) | Attributes describing the data to restore
`$search` | bool | Whether to search for items if not found directly

##### Exceptions:

Type | Description
--- | ---
`ezcBaseFilePermissionException` | If an already existsing cache file could not be unlinked. This exception means most likely that your cache directory has been corrupted by external influences (file permission change).

##### Redefinition of:

Method | Description
--- | ---
`ezcCacheStorageMemory::delete()` | Deletes the data associated with $id or $attributes from the cache.

#### fetchData

mixed fetchData( string $filename , [bool $useApc = false] )

Fetches the data from the cache.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$filename` | string | The ID/filename from where to fetch the object
`$useApc` | bool | Use APC or the file system

##### Redefinition of:

Method | Description
--- | ---
`ezcCacheStorageApc::fetchData()` | Fetches data from the cache.

#### fetchObject

mixed fetchObject( string $filename )

Fetches the object from the cache.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$filename` | string | The ID/filename from where to fetch the data

#### prepareData

mixed prepareData( mixed $data , [bool $useApc = false] )

Wraps the data in order to be stored in APC ($useApc = true) or on the file system ($useApc = false).

##### Parameters:

Name | Type | Description
--- | --- | ---
`$data` | mixed | Simple type or array
`$useApc` | bool | Use APC or not

##### Exceptions:

Type | Description
--- | ---
`ezcCacheInvalidDataException` | If the data submitted can not be handled by this storage (object, resource).

##### Redefinition of:

Method | Description
--- | ---
`ezcCacheStorageApc::prepareData()` | Prepares the data for storing.

#### restore

mixed restore( string $id , [array(string=>string) $attributes = array()] , [bool $search = false] )

Restores the data from the cache.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$id` | string | The item ID to restore
`$attributes` | array(string=>string) | Attributes describing the data to restore
`$search` | bool | Whether to search for items if not found directly

##### Redefinition of:

Method | Description
--- | ---
`ezcCacheStorageMemory::restore()` | Restores the data from the cache.

#### store

string store( string $id , mixed $data , [array(string=>string) $attributes = array()] )

Stores data to the cache storage.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$id` | string | Unique identifier
`$data` | mixed | The data to store
`$attributes` | array(string=>string) | Attributes describing the cached data

##### Exceptions:

Type | Description
--- | ---
`ezcBaseFilePermissionException` | If the directory to store the cache file could not be created. This exception means most likely that your cache directory has been corrupted by external influences (file permission change).
`ezcCacheApcException` | If the data could not be stored in APC.
`ezcBaseFileIoException` | If an error occured while writing the data to the cache. If this exception occurs, a serious error occured and your storage might be corruped (e.g. broken network connection, file system broken, ...).
`ezcCacheInvalidDataException` | If the data submitted can not be handled by the implementation of ezcCacheStorageFile. Most implementations can not handle objects and resources.

##### Redefinition of:

Method | Description
--- | ---
`ezcCacheStorageMemory::store()` | Stores data to the cache storage under the key $id.

#### validateLocation

void validateLocation( )

Checks the path in the location property exists, and is read-/writable. It throws an exception if not.

##### Exceptions:

Type | Description
--- | ---
`ezcBaseFileNotFoundException` | If the storage location does not exist. This should usually not happen, since ezcCacheManager::createCache() already performs sanity checks for the cache location. In case this exception is thrown, your cache location has been corrupted after the cache was configured.
`ezcBaseFileNotFoundException` | If the storage location is not a directory. This should usually not happen, since ezcCacheManager::createCache() already performs sanity checks for the cache location. In case this exception is thrown, your cache location has been corrupted after the cache was configured.
`ezcBaseFilePermissionException` | If the storage location is not writeable. This should usually not happen, since ezcCacheManager::createCache() already performs sanity checks for the cache location. In case this exception is thrown, your cache location has been corrupted after the cache was configured.

##### Redefinition of:

Method | Description
--- | ---
`ezcCacheStorageMemory::validateLocation()` | Checks if the location property is valid.

Documentation generated by phpDocumentor 1.4.3