v1.0.0 — Complete Package Restructure & Modernization
Why reset releases?
This package has been completely restructured and modernized from the ground up. The scope of changes was significant enough that prior version history no longer accurately represented the current
state of the package. A clean v1.0.0 reflects this new foundation.
What changed
Architecture
- Migrated to Spatie Laravel Package Skeleton conventions (
PackageServiceProvider, standardized config/views publishing) - Restructured source into
src/ReportMedia/,src/Facades/, andsrc/Support/with proper PSR-4 autoloading - Made
ReportGeneratorbase class abstract with a clean fluent builder API - Added
ReportExporterclass for multi-format export with extensive customization - Added
Support\AggregationHelperandSupport\ColumnFormatterfor modular internals - Removed Lumen-specific support (Lumen is EOL)
Compatibility
- PHP ^8.2 with
declare(strict_types=1)across all files - Laravel 10, 11 & 12 support (
illuminate/support ^10.0||^11.0||^12.0) - Graceful PDF engine fallback: tries Snappy first, falls back to DomPDF
Quality
- 93 tests with 99.6% line coverage (Pest 3 + PHPUnit 11 + Orchestra Testbench)
- PHPStan static analysis with Larastan
- Laravel Pint code formatting
- GitHub Actions CI pipeline
- Comprehensive test coverage for PDF, Excel, and CSV reports including edge cases, events, caching, aggregation, and conditional formatting
CSV Reports
- New
CsvReportclass usingleague/csvwith memory-efficient cursor iteration viaSplTempFileObject
Developer Experience
- Docker-based development environment (no local PHP/Composer needed)
- Standardized Composer scripts (
test,analyse,format,test-coverage) - Updated and comprehensive README with usage examples
Upgrading
This is a fresh start. If you were using a previous version, please review the README for the updated API and installation
instructions.