samuelterra22/laravel-report-generator
A Laravel package for generating reports from application data. Build report definitions from Eloquent queries or arrays and export results to common formats through a simple, fluent API, keeping reporting logic organized and reusable in your Laravel projects.
Architecture fit
samuelterra22/laravel-report-generator is a thin, opinionated reporting layer that sits on top of Laravel's query builder/collections and delegates serialization to pluggable writers (CSV via league/csv, plus Excel/PDF drivers). It follows the standard package shape: auto-discovered service provider, publishable config/report-generator.php, and per-report classes.Integration feasibility
composer require + php artisan vendor:publish gets a working CSV export in well under a day for a Laravel-fluent engineer.toString instead of an implicit string cast). That implies a caching layer already exists in the package and that, prior to this patch, cached CSV reports could fail or emit incorrect output. Anyone who enabled report caching on v1.0.0 should treat that as a latent bug, not a feature.Technical risk
league/csv ^9.2 to ^9.7 — still within the 9.x major, so it is a widening/tightening of the same line rather than a breaking jump. It can still collide with an application that pins a narrower league/csv range; verify with composer why-not league/csv 9.7.league/csv bumps in a single release suggest dependency drift being cleaned up rather than deliberate curation, i.e. the package is maintained reactively.Key questions
toString change alter byte-level output for existing cached reports, or only fix a type error?maatwebsite/excel or a hand-rolled league/csv exporter — is the abstraction earning its keep for our report count and formats?Stack fit
Migration path
fputcsv/StreamedResponse handlers: low effort, mostly mechanical — wrap existing queries in report classes.maatwebsite/excel: non-trivial if we depend on its import side, styling, or chunked readers. Recommend not migrating existing Excel flows; scope this package to new CSV reports only.Compatibility
composer update samuelterra22/laravel-report-generator --with-dependencies --dry-run in a branch to surface the league/csv ^9.7 constraint against the lockfile.league/csv 9.7, this patch is uninstallable without a broader dependency bump — treat that as the gating check, not the code change.config/report-generator.php overrides remain valid.Sequencing
league/csv constraint; document the resulting locked version.^1.0.1 (not ^1.0.0) so we inherit the caching fix by default.Maintenance
Support
league/csv implementation is a contained change (typically a few hundred lines) rather than a rewrite.Scaling
Failure modes
league/csv major bump breaking the writer contract. Constrain and test on upgrade.Ramp-up
How can I help you explore Laravel packages today?