Weave Code
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.
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky