tabuna/breadcrumbs
Laravel breadcrumbs made easy: define breadcrumb trails right in your route definitions with a fluent API (parent/push), automatic route detection, and support for request parameters and model binding to generate consistent navigation across your app.
Feature Development:
route('posts.show', ['post' => $post]) → route('posts.show', $post)). Ideal for apps with parameter-heavy URLs (e.g., multi-tiered resources like users/{user}/posts/{post}/comments/{comment}).Roadmap Prioritization:
BreadcrumbsMiddleware::forgetParameter cleanup behavior supports multi-tenant apps or A/B testing where breadcrumb state must be reset per request.Build vs. Buy:
Use Cases (Expanded):
route('products.show', ['locale' => $locale, 'id' => $id])).Trail::call() (now private) to trigger breadcrumb updates via Laravel Events (e.g., post.published).Adopt if:
route('posts.show', ['post' => $post])) and you want to simplify breadcrumb generation.Trail::call() encapsulation enforces best practices.Look elsewhere if:
Home > About with no dynamic segments).Trail::call() visibility changes may break existing extensions).For Executives: *"The latest release (5.0.0) supercharges our breadcrumb strategy by:
users/{user}/posts/{post}).For $0, we get enterprise-grade reliability and cleaner code—used by [X] teams in [industry]. This lets us focus on [business priority Z] while ensuring our UX stays polished and SEO-friendly."*
For Engineering: *"5.0.0 is a low-risk, high-reward upgrade for our breadcrumbs:
route('posts.show', $post) instead of route('posts.show', ['post' => $post])—cleaner and less error-prone.Trail::call() is now private, forcing us to use Laravel’s container properly—better architecture.Tradeoffs:
Trail::call() directly, you’ll need to refactor to app()->call().Proposal: Use this for [feature A], where dynamic routes are critical. The named parameter support alone will save us [X] hours. Pair with our existing [tool Y] for styling."*
How can I help you explore Laravel packages today?