Rumah >pembangunan bahagian belakang >tutorial php >Membina Perintah Eksport CSV Pantas dalam Laravel
Pembangun Laravel selalunya perlu mengeksport data ke fail CSV untuk pelaporan atau analisis. Artikel ini membentangkan kaedah yang cekap dan mudah untuk mencipta arahan eksport CSV Laravel, menggunakan chunking Laravel dan fungsi fputcsv
PHP untuk prestasi optimum dengan set data yang besar.
Pendekatan ini menawarkan beberapa kelebihan utama:
fputcsv
menyediakan pemformatan CSV langsung, menghapuskan keperluan untuk perpustakaan luaran.Kod berikut menunjukkan eksport CSV ringkas:
<code class="language-php">use Illuminate\Database\Eloquent\Collection; $chunkSize = 500; // Adjustable chunk size $outputStream = fopen('php://stdout', 'wb+'); // Output stream to stdout // Write CSV header row fputcsv($outputStream, ['email', 'name']); // Chunk-based data processing and export User::select(['email', 'name']) ->chunk($chunkSize, function (Collection $users) use ($outputStream) { $users->each(function ($user) use ($outputStream) { fputcsv($outputStream, [$user->email, $user->name]); }); });</code>
$chunkSize = 500;
: Menetapkan bilangan rekod yang diproses setiap bahagian. Laraskan mengikut keperluan berdasarkan volum data dan sumber pelayan anda.
$outputStream = fopen('php://stdout', 'wb ');
: Membuka strim binari tulis kepada output standard (stdout
). Ini membenarkan paip terus keluaran ke fail atau proses lain.
fputcsv($outputStream, ['email', 'name']);
: Menulis baris pengepala CSV.
User::select(['email', 'name'])->chunk($chunkSize, ...);
: Kaedah chunk
Laravel memproses data model User
dalam ketulan $chunkSize
rekod. Fungsi tanpa nama dalam chunk
mengendalikan setiap bahagian.
$users->each(function ($user) use ($outputStream) { ... });
: Berulang melalui setiap pengguna dalam bongkah dan menulis e-mel dan nama ke CSV menggunakan fputcsv
.
Untuk mencipta perintah Artisan boleh guna semula, susun kod anda seperti berikut:
<code class="language-php"><?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Database\Eloquent\Collection; use App\Models\User; class ExportUsersToCsv extends Command { protected $signature = 'export:users'; protected $description = 'Export users to CSV'; public function handle() { // ... (Code from previous example) ... } }</code>
Ini mencipta perintah Artisan php artisan export:users
untuk melaksanakan eksport.
Kaedah ini menyediakan penyelesaian yang cekap dan berskala untuk eksport CSV dalam Laravel, memanfaatkan fungsi terbina dalam untuk prestasi optimum dan kemudahan pelaksanaan. Ingat untuk melaraskan pembolehubah $chunkSize
mengikut keperluan khusus anda.
Atas ialah kandungan terperinci Membina Perintah Eksport CSV Pantas dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!