✨ New Features
-
Named parameter resolution for breadcrumbs
Breadcrumb closures now support resolving parameters by name via Laravel’s container (app()->call()), removing dependency on positional arguments.->breadcrumbs(fn (Trail $trail, Post $post) => $trail->push($post->title, route('post', $post->id)) );
-
Note parameters resolved by name
Internal improvements ensure note parameters are consistently resolved using named bindings.
🧪 Testing & Quality Improvements
-
100% Mutation Testing Coverage (MSI) achieved
Significant improvements to test suite robustness and reliability. -
Added test coverage for:
- Blade component registration
- Macro overwrite protection (
hasMacroguard) - Fluent return behavior of
breadcrumbs()macro Breadcrumbs::has()with explicit route names- Exception handling in
Registrar::get()for missing definitions - Isolation of
generate()from current route parameters - Cleanup behavior in
BreadcrumbsMiddleware::forgetParameter
-
Refactored:
Trail::call()visibility changed from protected → private to enforce stricter encapsulation
Full Changelog: 4.4.0...5.0.0