string) $options Options for the cache */ public function __construct( $location = null, array $options = array() ) { parent::__construct( $location, array() ); // Overwrite parent set options with new ezcCacheStorageApcOptions $this->properties['options'] = new ezcCacheStorageApcOptions( $options ); $this->backend = new ezcCacheApcBackend(); $this->registryName = self::REGISTRY_NAME; $this->backendName = self::BACKEND_NAME; } /** * Fetches data from the cache. * * @param string $identifier The APC identifier to fetch data from * @return mixed The fetched data or false on failure */ abstract protected function fetchData( $identifier ); /** * Prepares the data for storing. * * @throws ezcCacheInvalidDataException * If the data submitted can not be handled by this storage (object, * resource). * * @param mixed $data Simple type or array * @return mixed Prepared data */ abstract protected function prepareData( $data ); /** * Property write access. * * @param string $propertyName Name of the property. * @param mixed $val The value for the property. * * @throws ezcBaseValueException * If a the value for the property options is not an instance of * ezcCacheStorageOptions. * @ignore */ public function __set( $propertyName, $val ) { switch ( $propertyName ) { case 'options': $this->setOptions( $val ); return; default: parent::__set( $propertyName, $val ); } } /** * Return the currently set options. * * Return the currently set options. The options are returned on an array * that has the same format as the one passed to * {@link ezcCacheStorage::setOptions()}. The possible options for a storage * depend on it's implementation. * * @param ezcCacheStorageOptions $options * * @apichange Use $storage->options instead. */ public function setOptions( $options ) { switch ( true ) { case ( $options instanceof ezcCacheStorageApcOptions ): $this->properties['options'] = $options; break; case ( $options instanceof ezcCacheStorageOptions ): $this->properties['options']->mergeStorageOptions( $options ); break; case ( is_array( $options ) ): $this->properties['options']->merge( $options ); break; default: throw new ezcBaseValueException( 'options', $options, 'instance of ezcCacheStorageApcOptions' ); } } } ?>