У меня возникают проблемы с созданием отчетов с PHPExcel в Laravel 4.2, количество строк, полученных из базы данных, очень велико (более 500 тысяч строк), поэтому создаваемые массивы используют много Памяти PHP и генерации окончательного файла, который заканчивается. Причинение переполнения памяти. Я попытался использовать систему кэширования PHPExcel, но также использует много системной памяти. Есть ли другое решение, которое я могу использовать? Я подумал о частичном создании обработки записей, например, 5 тысяч строк за раз, но я не знаю, решит ли эта проблема моя проблема.Решение для создания отчетов с PHPExcel в Laravel 4.2
код, который я использую, чтобы использовать кэш PHPExcel (discISAM):
public function __construct() {
$templateFileName = $this->getTemplateFileName();
$fullPathTemplate = public_path().'/Temp/'.$templateFileName.'.xlsx';
// $cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
$cacheSettings = array(
// 'memoryCacheSize' => '150MB'
'dir' => 'public/Temp/cache'
);
$cacheAtivo = \PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
if (! $cacheAtivo) {
die($cacheMethod . " Cache invalido " . EOL);
}
$objPhpReader = new \PHPExcel_Reader_Excel2007();
$this->phpExcelObject = $objPhpReader->load($fullPathTemplate);
}
Спасибо заранее за внимание каждого.