Architecture fit
whereof/think-csv, sourced from tp5er/think-csvs — a ThinkPHP package, not a Laravel package. Its service provider/namespace will target think\ and the ThinkPHP container, so it cannot be composer required into a Laravel application and expected to function without a compatibility shim.fputcsv wrapper), the value delivered over a 20-line controller method is marginal.Integration feasibility
league/csv, spatie/simple-excel, maatwebsite/excel, or native streamed downloads via response()->streamDownload(). Any of these dominates on stars, dependents, maintenance cadence, and documentation.Technical risk
App, config repository, or facade system. PHP version constraints are unknown.=, +, -, @ prefixes).Key questions
composer.json declare?Stack fit
composer.json. The correct decision is a build-or-use-standard-library call, and the standard library wins on every axis.Migration path
fputcsv to a stream), and reimplement it against league/csv or spatie/simple-excel in Laravel.Compatibility
ServiceProvider. Expect a hard failure at boot if forced.Sequencing
league/csv/spatie/simple-excel behind a small internal CsvExporter abstraction so the underlying library stays swappable.Maintenance
Support
Scaling
Failure modes
=, +, -, @ execute in Excel; a genuine security issue for any export containing user-supplied data.Ramp-up
Recommendation: Do not adopt. Reimplement the export pattern on spatie/simple-excel or league/csv, and record this package in the "evaluated and rejected" register so future requests resolve instantly.
How can I help you explore Laravel packages today?