You are here

class PHPExcel_CachedObjectStorageFactory in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php \PHPExcel_CachedObjectStorageFactory

PHPExcel_CachedObjectStorageFactory

@category PHPExcel @package PHPExcel_CachedObjectStorage @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)

Hierarchy

Expanded class hierarchy of PHPExcel_CachedObjectStorageFactory

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php, line 37

View source
class PHPExcel_CachedObjectStorageFactory {
  const cache_in_memory = 'Memory';
  const cache_in_memory_gzip = 'MemoryGZip';
  const cache_in_memory_serialized = 'MemorySerialized';
  const cache_igbinary = 'Igbinary';
  const cache_to_discISAM = 'DiscISAM';
  const cache_to_apc = 'APC';
  const cache_to_memcache = 'Memcache';
  const cache_to_phpTemp = 'PHPTemp';
  const cache_to_wincache = 'Wincache';
  const cache_to_sqlite = 'SQLite';
  const cache_to_sqlite3 = 'SQLite3';

  /**
   * Name of the method used for cell cacheing
   *
   * @var string
   */
  private static $_cacheStorageMethod = NULL;

  /**
   * Name of the class used for cell cacheing
   *
   * @var string
   */
  private static $_cacheStorageClass = NULL;

  /**
   * List of all possible cache storage methods
   *
   * @var string[]
   */
  private static $_storageMethods = array(
    self::cache_in_memory,
    self::cache_in_memory_gzip,
    self::cache_in_memory_serialized,
    self::cache_igbinary,
    self::cache_to_phpTemp,
    self::cache_to_discISAM,
    self::cache_to_apc,
    self::cache_to_memcache,
    self::cache_to_wincache,
    self::cache_to_sqlite,
    self::cache_to_sqlite3,
  );

  /**
   * Default arguments for each cache storage method
   *
   * @var array of mixed array
   */
  private static $_storageMethodDefaultParameters = array(
    self::cache_in_memory => array(),
    self::cache_in_memory_gzip => array(),
    self::cache_in_memory_serialized => array(),
    self::cache_igbinary => array(),
    self::cache_to_phpTemp => array(
      'memoryCacheSize' => '1MB',
    ),
    self::cache_to_discISAM => array(
      'dir' => NULL,
    ),
    self::cache_to_apc => array(
      'cacheTime' => 600,
    ),
    self::cache_to_memcache => array(
      'memcacheServer' => 'localhost',
      'memcachePort' => 11211,
      'cacheTime' => 600,
    ),
    self::cache_to_wincache => array(
      'cacheTime' => 600,
    ),
    self::cache_to_sqlite => array(),
    self::cache_to_sqlite3 => array(),
  );

  /**
   * Arguments for the active cache storage method
   *
   * @var array of mixed array
   */
  private static $_storageMethodParameters = array();

  /**
   * Return the current cache storage method
   *
   * @return string|NULL
   **/
  public static function getCacheStorageMethod() {
    return self::$_cacheStorageMethod;
  }

  //    function getCacheStorageMethod()

  /**
   * Return the current cache storage class
   *
   * @return PHPExcel_CachedObjectStorage_ICache|NULL
   **/
  public static function getCacheStorageClass() {
    return self::$_cacheStorageClass;
  }

  //    function getCacheStorageClass()

  /**
   * Return the list of all possible cache storage methods
   *
   * @return string[]
   **/
  public static function getAllCacheStorageMethods() {
    return self::$_storageMethods;
  }

  //    function getCacheStorageMethods()

  /**
   * Return the list of all available cache storage methods
   *
   * @return string[]
   **/
  public static function getCacheStorageMethods() {
    $activeMethods = array();
    foreach (self::$_storageMethods as $storageMethod) {
      $cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $storageMethod;
      if (call_user_func(array(
        $cacheStorageClass,
        'cacheMethodIsAvailable',
      ))) {
        $activeMethods[] = $storageMethod;
      }
    }
    return $activeMethods;
  }

  //    function getCacheStorageMethods()

  /**
   * 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 (array_key_exists($k, self::$_storageMethodParameters[$method])) {
        self::$_storageMethodParameters[$method][$k] = $v;
      }
    }
    if (self::$_cacheStorageMethod === NULL) {
      self::$_cacheStorageClass = 'PHPExcel_CachedObjectStorage_' . $method;
      self::$_cacheStorageMethod = $method;
    }
    return TRUE;
  }

  //    function initialize()

  /**
   * Initialise the cache storage
   *
   * @param    PHPExcel_Worksheet     $parent        Enable cell caching for this worksheet
   * @return    PHPExcel_CachedObjectStorage_ICache
   **/
  public static function getInstance(PHPExcel_Worksheet $parent) {
    $cacheMethodIsAvailable = TRUE;
    if (self::$_cacheStorageMethod === NULL) {
      $cacheMethodIsAvailable = self::initialize();
    }
    if ($cacheMethodIsAvailable) {
      $instance = new self::$_cacheStorageClass($parent, self::$_storageMethodParameters[self::$_cacheStorageMethod]);
      if ($instance !== NULL) {
        return $instance;
      }
    }
    return FALSE;
  }

  //    function getInstance()

  /**
   * Clear the cache storage
   *
   **/
  public static function finalize() {
    self::$_cacheStorageMethod = NULL;
    self::$_cacheStorageClass = NULL;
    self::$_storageMethodParameters = array();
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PHPExcel_CachedObjectStorageFactory::$_cacheStorageClass private static property Name of the class used for cell cacheing
PHPExcel_CachedObjectStorageFactory::$_cacheStorageMethod private static property Name of the method used for cell cacheing
PHPExcel_CachedObjectStorageFactory::$_storageMethodDefaultParameters private static property Default arguments for each cache storage method
PHPExcel_CachedObjectStorageFactory::$_storageMethodParameters private static property Arguments for the active cache storage method
PHPExcel_CachedObjectStorageFactory::$_storageMethods private static property List of all possible cache storage methods
PHPExcel_CachedObjectStorageFactory::cache_igbinary constant
PHPExcel_CachedObjectStorageFactory::cache_in_memory constant
PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip constant
PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized constant
PHPExcel_CachedObjectStorageFactory::cache_to_apc constant
PHPExcel_CachedObjectStorageFactory::cache_to_discISAM constant
PHPExcel_CachedObjectStorageFactory::cache_to_memcache constant
PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp constant
PHPExcel_CachedObjectStorageFactory::cache_to_sqlite constant
PHPExcel_CachedObjectStorageFactory::cache_to_sqlite3 constant
PHPExcel_CachedObjectStorageFactory::cache_to_wincache constant
PHPExcel_CachedObjectStorageFactory::finalize public static function Clear the cache storage
PHPExcel_CachedObjectStorageFactory::getAllCacheStorageMethods public static function Return the list of all possible cache storage methods
PHPExcel_CachedObjectStorageFactory::getCacheStorageClass public static function Return the current cache storage class
PHPExcel_CachedObjectStorageFactory::getCacheStorageMethod public static function Return the current cache storage method
PHPExcel_CachedObjectStorageFactory::getCacheStorageMethods public static function Return the list of all available cache storage methods
PHPExcel_CachedObjectStorageFactory::getInstance public static function Initialise the cache storage
PHPExcel_CachedObjectStorageFactory::initialize public static function Identify the cache storage method to use