stephen / chunk-export
该软件包最新版本(1.0.1)没有可用的许可证信息。
简单的块导出
1.0.1
2017-09-22 02:30 UTC
This package is auto-updated.
Last update: 2024-09-19 10:12:20 UTC
README
在项目中涉及到大数据量的导出时,使用传统的页面导出方式很容易导致内存溢出,通常情况下采用分页导出的方式,循环读取数据,输出到缓存区。
环境要求
1.Laravel 5.1以上
2.PHP5.6以上
安装package
这是一个标准的 Composer 包,您可以通过以下命令行直接安装:
composer require stephen/chunk-export
或者在你的 composer.json 文件中添加
"stephen/chunk-export" : "~1.0.0",然后执行 composer install。
配置
注册Service Provider
在config/app.php中添加provider
'providers' => [
\Stephen\Chunk\ChunkServiceProvier::class,
],
在Laravel中使用案例
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use Stephen\Chunk\Service\ChunkService;
class Export extends Controller
{
//
/**
* @var ChunkService
*/
private $chunkService;
/**
* @var User
*/
private $user;
/**
* Export constructor.
* @param ChunkService $chunkService
*/
public function __construct(ChunkService $chunkService, User $user)
{
$this->chunkService = $chunkService;
$this->user = $user;
}
public function index()
{
$config['models'] = $this->user->select('id', 'name', 'email')->orderBy('id', 'DESC');
$config['headers'] = ['姓名', '邮箱'];
$config['filename'] = '用户信息.csv';
$pageSize = 10;
$callback = function ($user) {
$output = [];
$output['name'] = iconv('UTF-8', 'GBK', $user['name']);
$output['email'] = iconv('UTF-8', 'GBK', $user['email']);
return $output;
};
$this->chunkService->exportCsv($config, $callback, $pageSize);
}
}