Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Breadcrumbs Laravel Package

chamber-orchestra/breadcrumbs

Laravel breadcrumbs helper for Chamber Orchestra apps. Define breadcrumb trails in code, generate navigable links for pages, and keep UI navigation consistent across routes/views. Lightweight package aimed at simple breadcrumb management in PHP.

View on GitHub
Deep Wiki
Context7

PHP Composer PHP CS Fixer Code Style: PER-CS Code Style: Symfony PHPStan Level max PHP 8.5 Symfony 8.0 Latest Stable Version License

Breadcrumbs

A lightweight, iterable breadcrumb collection for Symfony applications. Implements ArrayAccess, Iterator, and Countable for seamless integration with Twig templates and controllers.

Part of the Chamber Orchestra ecosystem.

Requirements

  • PHP ^8.5
  • Symfony HttpFoundation ^8.0

Installation

composer require chamber-orchestra/breadcrumbs

Usage

Adding breadcrumbs manually

use ChamberOrchestra\Breadcrumbs\Breadcrumbs;

$breadcrumbs = new Breadcrumbs();
$breadcrumbs
    ->addCrumb('Home', 'app_home')
    ->addCrumb('Products', 'app_products', ['category' => 'books'])
    ->addCrumb('Current Page');

Adding from a Symfony Request

$breadcrumbs->addRequestCrumb('Current Page', $request);

Extracts _route and _route_params from the request attributes automatically.

Prepending a crumb

$breadcrumbs->addCrumb('Home', 'app_home', [], prepend: true);

Using a closure

$breadcrumbs->addCrumbsClosure(function (Breadcrumbs $crumbs) {
    $crumbs->addCrumb('Home', 'app_home');
    $crumbs->addCrumb('About', 'app_about');
});

Iterating in Twig

<nav aria-label="breadcrumb">
    <ol>
        {% for crumb in breadcrumbs %}
            <li>
                {% if crumb.route %}
                    <a href="{{ path(crumb.route, crumb.routeParams) }}">{{ crumb.name }}</a>
                {% else %}
                    {{ crumb.name }}
                {% endif %}
            </li>
        {% endfor %}
    </ol>
</nav>

Array access

$first = $breadcrumbs[0];
$total = count($breadcrumbs);

License

MIT

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table