Search by

nowo-tech / breadcrumb-kit-bundle

HecFranco

Symfony bundle: configurable breadcrumb trails (route matching, i18n, optional links, collection-level presentation).

Package info

github.com/nowo-tech/BreadcrumbKitBundle

Type:symfony-bundle

pkg:composer/nowo-tech/breadcrumb-kit-bundle

Fund package maintenance!

HecFranco

Statistics

Installs: 1 698

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.9.0 2026-10-20 20:58 UTC

README

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

⭐ Found this useful? Install from Packagist and consider starring the GitHub repository.

Symfony bundle for database-driven breadcrumb trails: match the current route by name + static parameters, walk a parent chain, support i18n (JSON translations on entities), optional links, per-collection presentation (icons, CSS, responsive JSON), and PSR-6 caching of serialized item rows. Design aligns with DashboardMenuBundle (Doctrine, YAML defaults, cache pool, Twig namespace overrides).

FrankenPHP Friendly Worker Mode

This bundle is FrankenPHP worker mode friendly.

Demo product page: database-driven trail Home › Shop › Product under the demo header, with the Symfony toolbar Breadcrumb collections dashboard on the UiKit list page: trail in the page header, export / import / new actions, search and row actions Item edit form in a UiKit dialog over the items list: default label and the label translations as one tab per locale
Front trail (breadcrumb_render()) Dashboard: collections (UiKit page contract) Dashboard: item form dialog

Table of contents

Status

Stable (v2.6.0): entities (dashboard_breadcrumb_* tables, aligned with DashboardMenuBundle), repositories, BreadcrumbLoader, BreadcrumbUrlResolver, Twig (breadcrumb_trail, breadcrumb_render) + Twig Extra (REQ-TWIG-004), CLI (migration / export / import / preview), BreadcrumbTrailBuiltEvent enrichers, path/attribute matching, optional web dashboard on the UiKit 2.1 page contract (REQ-UI-003, TEMPLATES), FormKitBundle forms, REQ-UI-002 access roles, named asset package nowo_breadcrumb_kit, presentation options, opt-in collapse on narrow screens (GitHub-style "…" menu + current crumb on phones, USAGE), dashboard i18n en/es/de/fr/it/nl/pt. Demo: Symfony 8.1 / PHP 8.5 (8021) with FrankenPHP. Flex recipe in .symfony/recipe/. Compatible with FrankenPHP worker mode without kernel reset (audit).

FrankenPHP: demo selects classic vs worker via FRANKENPHP_MODE (default worker). See docs/DEMO-FRANKENPHP.md and docs/FRANKENPHP-WORKER-AUDIT.md.

Version information

Latest release: v2.6.0 (2026-10-16). Requires PHP 8.2+ and Symfony 7.4+. Tables: dashboard_breadcrumb_* (see UPGRADING.md from v1.2.x / 2.0.14→2.1.0 / 2.1.7→2.1.8 worker).

Quick start

composer require nowo-tech/breadcrumb-kit-bundle

Register the bundle in config/bundles.php:

Nowo\BreadcrumbKitBundle\NowoBreadcrumbKitBundle::class => ['all' => true],

With Symfony Flex, the recipe (when available from Packagist or your recipe index) registers the bundle and adds config/routes. Without Flex, see docs/INSTALLATION.md for manual steps.

Example config/packages/nowo_breadcrumb_kit.yaml:

nowo_breadcrumb_kit:
    locales: ['en', 'es']
    default_locale: 'en'
    default_collection: 'default'
    cache:
        ttl: 60
        pool: cache.app

Requirements

  • PHP >=8.2 <8.6
  • Symfony 7.4+ or 8.x (^7.4 || ^8.0; see composer.json)
  • Doctrine ORM
  • Twig Extra Bundle (twig/extra-bundle + twig/string-extra; REQ-TWIG-004)
  • UiKitBundle + FormKitBundle (transitive; register both for the dashboard)

Development

composer install
composer test
composer phpstan
composer igor

With Docker from the bundle root:

make install
make test-coverage

Demo

Symfony 8 (Symfony 8.1, PHP 8.5):

make -C demo/symfony8 up

Opens at http://localhost:8021 by default; the app redirects / to /en/. The dashboard (/breadcrumb-kit-admin) renders in the demo host layout (nowo_ui_kit.layouts.admin). make -C demo/symfony8 test-e2e runs the Playwright e2e; make -C demo/symfony8 demo-screenshots re-captures docs/images/demo/*.webp (REQ-DEMO-013).

Documentation

Additional documentation

Tests and coverage

  • PHP: run composer test-coverage or make test-coverage (Docker). Update the percentage below when you change code or tests; CI enforces a green build and generates coverage.xml.
Language Coverage (Lines / notes)
PHP 100% (Lines, PHPUnit + PCOV; run make test-coverage to refresh)
TS/JS N/A
Python N/A

License

MIT. See LICENSE.