public function testCacheLastCell() { $methods = PHPExcel_CachedObjectStorageFactory::getCacheStorageMethods(); foreach ($methods as $method) { PHPExcel_CachedObjectStorageFactory::initialize($method); $workbook = new PHPExcel(); $cells = array('A1', 'A2'); $worksheet = $workbook->getActiveSheet(); $worksheet->setCellValue('A1', 1); $worksheet->setCellValue('A2', 2); $this->assertEquals($cells, $worksheet->getCellCollection(), "Cache method \"{$method}\"."); PHPExcel_CachedObjectStorageFactory::finalize(); } }
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; }
/** * Create a new worksheet * * @param PHPExcel $pParent * @param string $pTitle */ public function __construct(PHPExcel $pParent = null, $pTitle = 'Worksheet') { // Set parent and title $this->_parent = $pParent; $this->setTitle($pTitle, FALSE); // setTitle can change $pTitle $this->setCodeName($this->getTitle()); $this->setSheetState(PHPExcel_Worksheet::SHEETSTATE_VISIBLE); $this->_cellCollection = PHPExcel_CachedObjectStorageFactory::getInstance($this); // Set page setup $this->_pageSetup = new PHPExcel_Worksheet_PageSetup(); // Set page margins $this->_pageMargins = new PHPExcel_Worksheet_PageMargins(); // Set page header/footer $this->_headerFooter = new PHPExcel_Worksheet_HeaderFooter(); // Set sheet view $this->_sheetView = new PHPExcel_Worksheet_SheetView(); // Drawing collection $this->_drawingCollection = new ArrayObject(); // Chart collection $this->_chartCollection = new ArrayObject(); // Protection $this->_protection = new PHPExcel_Worksheet_Protection(); // Default row dimension $this->_defaultRowDimension = new PHPExcel_Worksheet_RowDimension(NULL); // Default column dimension $this->_defaultColumnDimension = new PHPExcel_Worksheet_ColumnDimension(NULL); $this->_autoFilter = new PHPExcel_Worksheet_AutoFilter(NULL, $this); }
/** * 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; }
/** * Set the method that should be used for cell cacheing * * @param string $method Name of the cacheing method * @param array $arguments Optional configuration arguments for the cacheing method * @return boolean Success or failure */ public static function setCacheStorageMethod($method = PHPExcel_CachedObjectStorageFactory::cache_in_memory, $arguments = array()) { return PHPExcel_CachedObjectStorageFactory::initialize($method, $arguments); }
/** * Clear the cache storage * **/ public static function finalize() { self::$_cacheStorageMethod = NULL; self::$_cacheStorageClass = NULL; self::$_storageMethodParameters = array(); }
/** * Create a new worksheet * * @param PHPExcel $pParent * @param string $pTitle */ public function __construct(PHPExcel $pParent = null, $pTitle = 'Worksheet') { // Set parent and title $this->_parent = $pParent; $this->setTitle($pTitle); $this->setSheetState(PHPExcel_Worksheet::SHEETSTATE_VISIBLE); $this->_cellCollection = PHPExcel_CachedObjectStorageFactory::getInstance($this); // Set page setup $this->_pageSetup = new PHPExcel_Worksheet_PageSetup(); // Set page margins $this->_pageMargins = new PHPExcel_Worksheet_PageMargins(); // Set page header/footer $this->_headerFooter = new PHPExcel_Worksheet_HeaderFooter(); // Set sheet view $this->_sheetView = new PHPExcel_Worksheet_SheetView(); // Drawing collection $this->_drawingCollection = new ArrayObject(); // Protection $this->_protection = new PHPExcel_Worksheet_Protection(); // Gridlines $this->_showGridlines = true; $this->_printGridlines = false; // Outline summary $this->_showSummaryBelow = true; $this->_showSummaryRight = true; // Default row dimension $this->_defaultRowDimension = new PHPExcel_Worksheet_RowDimension(null); // Default column dimension $this->_defaultColumnDimension = new PHPExcel_Worksheet_ColumnDimension(null); }
/** * Clear the cache storage * **/ public static function finalize() { self::$cacheStorageMethod = null; self::$cacheStorageClass = null; self::$storageMethodParameters = array(); }