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;
 }
Esempio n. 3
0
 /**
  * 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;
 }
Esempio n. 5
0
 /**
  * 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();
 }
Esempio n. 7
0
 /**
  * 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();
 }