The CnertaBreadcrumbBundle, for Symfony2, provide an easy way to create a breadcrumb with KnpMenuBundle

2.1.1 2015-10-21 15:36 UTC


The CnertaBreadcrumbBundle provide an easy way to create a breadcrumb with KnpMenuBundle for Symfony2.

If you want to take a look, this Symfony2 app is my Sandbox, DemoMenu.


Build Status Latest Stable Version Latest Unstable Version

Install the Bundle

  1. Add the sources in your composer.json
     "require": {
        // ...
        "cnerta/breadcrumb-bundle": "2.1.*"
  1. Then add it to your AppKernel class::
    // in AppKernel::registerBundles()
    $bundles = array(
        // ...
        new Cnerta\BreadcrumbBundle\CnertaBreadcrumbBundle(),
        // ...

Default configuration

You don't have to configure anything. This part is only usefull if you want to setup a default breadcrumb template.


            template: CnertaBreadcrumbBundle::cnerta_breadcrumb.html.twig

Rendering Breadcrumb

First create your menu with the KnpMenuBundle.

Next, in your twig template call :

    {{ cnerta_breadcrumb_render('MyWonderfullBundle:Builder:Menu') }}

Or if you just want to get the breadcrumb array and make your stuff :

    {% set currentItem = cnerta_breadcrumb_get('MyWonderfullBundle:Builder:Menu') %}
    {# some crazy stuff #}
    {% for item in currentItem %}
        {% if loop.index != 1 %}
            {% if loop.index > 1 %} > {% endif %}
            {% if not loop.last %}<a href="{{ item.uri }}">{{ item.label }}</a>
            {% else %}<span>{{ item.label }}</span>{% endif %}
        {% endif %}
    {% endfor %}

If you want to use your own template for rendering :

    {{ cnerta_breadcrumb_render('MyWonderfullBundle:Builder:Menu', {'template': 'MyWonderfullBundle:Breadcrumb:myBreadcrumb.html.twig'}) }}

Unit test the Bundle

Before running phpunit you must load dependencies. This will only load the required vendors needed for run test.

     composer install --dev

After that you can run phpunit.

      ./vendor/bin/phpunit -c phpunit.xml.dist


Version 2.1.0 (2015/10/19)

  • #4 Remove an unnecessary function who remove a node labeled "root"