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.
- PHP ^8.5
- Symfony HttpFoundation ^8.0
composer require chamber-orchestra/breadcrumbsuse ChamberOrchestra\Breadcrumbs\Breadcrumbs;
$breadcrumbs = new Breadcrumbs();
$breadcrumbs
->addCrumb('Home', 'app_home')
->addCrumb('Products', 'app_products', ['category' => 'books'])
->addCrumb('Current Page');$breadcrumbs->addRequestCrumb('Current Page', $request);Extracts _route and _route_params from the request attributes automatically.
$breadcrumbs->addCrumb('Home', 'app_home', [], prepend: true);$breadcrumbs->addCrumbsClosure(function (Breadcrumbs $crumbs) {
$crumbs->addCrumb('Home', 'app_home');
$crumbs->addCrumb('About', 'app_about');
});<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>$first = $breadcrumbs[0];
$total = count($breadcrumbs);MIT