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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style