nowo-tech/breadcrumb-kit-bundle

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

Maintainers

Package info

github.com/nowo-tech/BreadcrumbKitBundle

Type:symfony-bundle

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

Transparency log

Fund package maintenance!

HecFranco

Statistics

Installs: 67

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.0.5 2026-07-23 12:09 UTC

This package is auto-updated.

Last update: 2026-07-23 12:48:45 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.

Version information

Latest release: v2.0.5 (2026-07-23). Requires PHP 8.2+ and Symfony 7+. Tables: dashboard_breadcrumb_* (see UPGRADING.md from v1.2.x).

Status

MVP (v2.0.5): entities (dashboard_breadcrumb_* tables, aligned with DashboardMenuBundle), repositories, BreadcrumbLoader, BreadcrumbUrlResolver, Twig (breadcrumb_trail, breadcrumb_render), optional web dashboard, presentation options, dashboard i18n en/es/de/fr/it/nl/pt. Demo: Symfony 8.1 / PHP 8.5 (8021) with FrankenPHP. Flex recipe in .symfony/recipe/. Planned: migration command, event-based enrichers.

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

Requirements

  • PHP >=8.2 <8.6
  • Symfony 7.x or 8.x (see composer.json)
  • Doctrine ORM

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

Documentation

Additional documentation

Demo application

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/.

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 99.52% (Lines, PHPUnit + PCOV; run make test-coverage to refresh)
TS/JS N/A
Python N/A

Development

composer install
composer test
composer phpstan

With Docker from the bundle root:

make install
make test-coverage

License

MIT. See LICENSE.