phpExcel如何将设置传递给类

时间:2013-02-01 09:09:19

标签: php caching memory-leaks phpexcel

基本上我试图通过内存问题启用单元缓存(不断耗尽)其相当大的speadsheet。从我在网上看到的细胞缓存是一个很好的方法

从我在网上找到的例子看起来像这样

Cell caching and memory leak

stackoverflow - fix memory error

$oExcel = new PHPExcel();
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '512MB');

PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);

上面的问题是我没有用设置设置excel对象吗?

$oExcel->setCacheStorageMethod($cacheMethod,$cacheSettings); // this returns method not found error

我认为我刚开始做错了吗?

2 个答案:

答案 0 :(得分:10)

开发人员文档的第4.2.1节描述了:标题为“Cell Caching”的部分;并且您需要在实例化或加载PHPExcel对象之前设置 之前的单元格缓存。

setCacheStorageMethod()不是PHPExcel类的方法,因为您尝试在此行中使用:

$oExcel->setCacheStorageMethod($cacheMethod,$cacheSettings); 

使用

$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '512MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);

$oExcel = new PHPExcel();

并且新的PHPExcel对象将自动使用配置的缓存设置(即phptemp)

答案 1 :(得分:2)

Here you can find similar question with quite extensive answer包含 setCacheStorageMethod 的工作示例。希望它有所帮助!