mblsolutions/report
A Laravel package for generating customizable reports from application data. Define columns, filters, and formats with a fluent API, then export results to PDF, Excel, CSV, or other formats. It simplifies querying, formatting, and delivering reports in PHP and Laravel applications.
composer require mblsolutions/report and let Laravel's package auto-discovery register the service provider. Confirm it loaded with php artisan about or by grepping the provider list in bootstrap/providers.php (Laravel 11+) / config/app.php (older apps).routes/ directory and config/ directory, not the README. The v5.2.9 fix is a route name collision fix, which means the package registers named routes into your application's route collection — that is the surface area most likely to interact with your own code.php artisan route:list before and after installing. Anything the package registers will show up there; note the names and URI prefixes. That list is your contract with the package.route('<package-route-name>') from a Blade view. If that resolves cleanly alongside your app's routes, you have validated the main integration point.route:list and pick a prefix for your app routes that cannot collide. The v5.2.9 patch reduces the chance of collision inside the package, but it does not protect you from naming a route the same thing yourself."mblsolutions/report": "^5.2" is the right constraint. This release is a patch with no breaking change, so patch-level upgrades should be routine — but keep a route:list diff in CI so a future route-registration change is visible in review rather than in production.Gate/policy checks, tenancy scoping, and audit logging around report generation.route('<expected-name>') returns a URL, and that route:list contains no duplicate names, catches exactly the class of bug fixed in v5.2.9.it('registers report routes without name collisions', function () {
$names = collect(Route::getRoutes())->map->getName()->filter();
expect($names->duplicates())->toBeEmpty()
->and(route('reports.index'))->toContain('reports');
});
php artisan route:clear (or php artisan optimize:clear). If route() still resolves to the old name after upgrading to 5.2.9, this is almost always why.routes/web.php after the upgrade and delete the shim.route() silently returns the wrong URL. Symptoms are usually a 404 on a link that "obviously" exists, or a redirect landing on an unrelated page. When debugging, php artisan route:list --name=<fragment> is faster than reading code.config/report.php. Publishing the config and adjusting the prefix is safer than re-declaring the routes yourself, because re-declaring reintroduces the collision risk the patch just removed.route() calls inside the package's own views. If you have overridden or published the package's Blade views, any hardcoded route names in them will not pick up a rename. Search published views for route( after upgrading.How can I help you explore Laravel packages today?