wesleydeveloper/data-processor
Composer 安装命令:
composer require wesleydeveloper/data-processor
包简介
High-performance data import/export package for Laravel with cloud storage support, chunking, and queue processing
关键字:
README 文档
README
A high-performance Laravel package for importing and exporting large datasets with cloud storage support, automatic chunking, queue processing, and memory-efficient generators.
Built on top of OpenSpout for maximum performance and minimal memory usage.
🌟 Features
- ⚡ High Performance: Process millions of rows with minimal memory usage
- ☁️ Cloud Storage: Native support for AWS S3, Google Cloud Storage, Azure, and more
- 🔄 Auto Chunking: Automatically splits large files into smaller chunks
- 📋 Queue Support: Background processing with Laravel Queues
- 🧠 Memory Efficient: Uses PHP generators to handle large datasets
- 📁 Multiple Formats: Excel (XLSX), CSV, ODS support
- ✅ Data Validation: Built-in validation with Laravel's validator
- 🎯 Laravel Integration: Seamless integration with Laravel ecosystem
- 🧪 Well Tested: Comprehensive test suite with performance benchmarks
📋 Requirements
-- OpenSpout 4.0+
🐳 Docker
Use Docker para rodar a suíte de testes em um ambiente PHP 8.3 isolado:
# Build da imagem docker build -t data-processor-tests . # Run os testes (usa o código já copiado na imagem, sem volume mount) docker run --rm data-processor-tests
📦 Installation
You can install the package via composer:
bash composer require wesleydeveloper/data-processor
Publish the config file:
bash php artisan vendor:publish --tag="data-processor-config"
🚀 Quick Start
Import Data
Create an import class:
<?php namespace App\Imports; use Wesleydeveloper\DataProcessor\Contracts\Importable; use Wesleydeveloper\DataProcessor\Contracts\ShouldQueue; use Wesleydeveloper\DataProcessor\Contracts\WithChunking; use Illuminate\Support\Facades\DB; class UsersImport implements Importable, ShouldQueue, WithChunking { public function rules(): array { return [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'phone' => 'nullable|string' ]; } public function map(array $row): array { return [ 'name' => $row[0], 'email' => $row[1], 'phone' => $row[2] ?? null, 'created_at' => now(), 'updated_at' => now() ]; } public function process(array $data): void { DB::table('users')->insert($data); } public function chunkSize(): int { return 1000; } // Queue configuration public function onQueue(): ?string { return 'imports'; } public function timeout(): int { return 300; } public function memory(): int { return 512; } // Chunking configuration public function maxFileSize(): int { return 50 * 1024 * 1024; // 50MB } public function chunkRows(): int { return 10000; } }
Process the import:
use Wesleydeveloper\DataProcessor\Facades\DataProcessor; use App\Imports\UsersImport; DataProcessor::import(new UsersImport(), 'users-import.xlsx');
Export Data
Create an export class:
<?php namespace App\Exports; use Wesleydeveloper\DataProcessor\Contracts\Exportable; use App\Models\User; use Generator; class UsersExport implements Exportable { public function query(): Generator { User::chunk(1000, function ($users) { foreach ($users as $user) { yield $user; } }); } public function headings(): array { return ['ID', 'Name', 'Email', 'Created At']; } public function map($user): array { return [ $user->id, $user->name, $user->email, $user->created_at->format('Y-m-d H:i:s') ]; } public function chunkSize(): int { return 1000; } }
Process the export:
use Wesleydeveloper\DataProcessor\Facades\DataProcessor; use App\Exports\UsersExport; DataProcessor::export(new UsersExport(), 'users-export.xlsx');
wesleydeveloper/data-processor 适用场景与选型建议
wesleydeveloper/data-processor 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.64k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 08 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「queue」 「performance」 「excel」 「csv」 「import」 「export」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 wesleydeveloper/data-processor 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 wesleydeveloper/data-processor 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 wesleydeveloper/data-processor 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
g4 application profiler package
CSS/Javascript Minificator, Compressor and Concatenator for TYPO3 - highly configurable frontend asset optimization for CSS/JS merging, minification and compression with optional body parsing, async/defer loading, inline output, data-ignore exclusions, SRI integrity validation/calculation, external
This Symfony bundle integrates PhpSpreadsheet into Symfony using Twig.
WordPress mu-plugin to remove jQuery Migrate from the list of jQuery dependencies and to allow jQuery to enqueue before </body> instead of in the <head>.
PHP AMQP Binding Library
A Laravel package to monitor queue jobs.
统计信息
- 总下载量: 3.64k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-01