public static function initialize($method = self::cache_in_memory, $arguments = array()) { if (!in_array($method, self::$_storageMethods)) { return false; } switch ($method) { case self::cache_to_apc: if (!function_exists('apc_store')) { return false; } if (apc_sma_info() === false) { return false; } break; case self::cache_to_memcache: if (!function_exists('memcache_add')) { return false; } break; case self::cache_to_wincache: if (!function_exists('wincache_ucache_add')) { return false; } break; } self::$_storageMethodParameters[$method] = self::$_storageMethodDefaultParameters[$method]; foreach ($arguments as $k => $v) { if (isset(self::$_storageMethodParameters[$method][$k])) { self::$_storageMethodParameters[$method][$k] = $v; } } if (is_null(self::$_cacheStorageMethod)) { self::$_cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $method; self::$_cacheStorageMethod = $method; } return true; }
/** * Identify the cache storage method to use * * @param string $method Name of the method to use for cell cacheing * @param array of mixed $arguments Additional arguments to pass to the cell caching class * when instantiating * @return boolean **/ public static function initialize($method = self::cache_in_memory, $arguments = array()) { if (!in_array($method, self::$_storageMethods)) { return FALSE; } $cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $method; if (!call_user_func(array($cacheStorageClass, 'cacheMethodIsAvailable'))) { return FALSE; } self::$_storageMethodParameters[$method] = self::$_storageMethodDefaultParameters[$method]; foreach ($arguments as $k => $v) { if (isset(self::$_storageMethodParameters[$method][$k])) { self::$_storageMethodParameters[$method][$k] = $v; } } if (self::$_cacheStorageMethod === NULL) { self::$_cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $method; self::$_cacheStorageMethod = $method; } return TRUE; }
/** * Clear the cache storage * **/ public static function finalize() { self::$_cacheStorageMethod = NULL; self::$_cacheStorageClass = NULL; self::$_storageMethodParameters = array(); }