PHPackages                             zemd/symfony-menu - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. zemd/symfony-menu

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

zemd/symfony-menu
=================

Breadcrumbs builder

1.0.0(9y ago)013MITPHPPHP &gt;=5.6

Since Nov 21Pushed 9y ago1 watchersCompare

[ Source](https://github.com/zemd/symfony-menu)[ Packagist](https://packagist.org/packages/zemd/symfony-menu)[ Docs](https://reactive.world)[ RSS](/packages/zemd-symfony-menu/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

Symfony Menu
============

[](#symfony-menu)

> Very lightweight but powerful breadcrumbs builder for symfony

Installation
------------

[](#installation)

```
composer require zemd/symfony-menu
```

Usage
-----

[](#usage)

This component build breadcrumb path leveraging standard symfony router. If you want to skip or modify some part of the path feel free to use **@Breadcrumbs** annotation.

For instance we have next controller:

```
class MyController {

  /**
   * This route should be skipped from menu chain
   *
   * @Breadcrumbs(skip=true)
   */
  public function myActionIwantToSkip() {}

  /**
   * This route should be in the root of menu tree
   *
   * @Route("/dashboard", name="dashboard")
   * @Breadcrumbs(root=true)
   */
  public function dashboardAction() {}

  /**
   * This route should be added automatically into menu chain
   *
   * @Route("/dashboard/graphs")
   */
  public function viewMoreGraphsAction() {}
}
```

Let's now share breadcrumbs into the view by using twig globals as example:

```
class BreadcrumbsGlobalExtension extends \Twig_Extension implements Twig_Extension_GlobalsInterface
{
    const NAME = 'zemd_breadcrumbs_extension';

    /** @var BreadCrumbsManager */
    protected $breadcrumbsManager;

    public function __construct(BreadCrumbsManager $breadcrumbsManager) {
        $this->breadcrumbsManager = $breadcrumbsManager;
    }

    /**
     * Returns the name of the extension.
     *
     * @return string The extension name
     */
    public function getName() {
        return self::NAME;
    }

    public function getGlobals() {
        return [
            'zemd_breadcrumbs' => $this->breadcrumbsManager->getBreadcrumbs()
        ];
    }
}
```

```
services:
  zemd.breadcrumbs_manager:
    class: Zemd\Component\Menu\BreadCrumbsManager
    arguments: ["@router", "@annotation_reader", "@request_stack"]
    calls:
      - [setContainer, ["@service_container"]]

  zemd.breadcrumbs.twig_extension:
    class: Path\To\Your\BreadcrumbsGlobalExtension
    public: false
    arguments: ["@zemd.breadcrumbs_manager"]
    tags:
      - { name: twig.extension }

  zemd.router_checker.twig_extension:
    class: Zemd\Component\Menu\Twig\Extension\RouteChecker
    public: false
    arguments: ["@request_stack", "@zemd.breadcrumbs_manager"]
    tags:
      - { name: twig.extension }
```

Now we can show our menu in the header and style or translate menu items as we want:

```

  {% for node in zemd_breadcrumbs %}

              {{ node.routeName|trans({}, "breadcrumbs") }}

  {% endfor %}

```

Advanced usage
--------------

[](#advanced-usage)

// TODO: Example for generator

License
-------

[](#license)

Symfony Menu is released under the MIT license.

Donate
------

[](#donate)

[![](https://camo.githubusercontent.com/f9e075baad95563481d35174d43ef50757281abb6bc795d0f473fad452afa030/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d646f6e6174652d79656c6c6f772e737667)](https://www.patreon.com/red_rabbit)[![](https://camo.githubusercontent.com/d79e412f78041f87e203449041ad81848a8405cf0f3c622c51e3bad0c2a4b599/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f666c617474722d646f6e6174652d79656c6c6f772e737667)](https://flattr.com/profile/red_rabbit)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3461d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d46cc103bcb14e2302c7c06da8a4099048bd275d956b403c14ded18a99ddb62d?d=identicon)[zemd](/maintainers/zemd)

---

Top Contributors

[![zemd](https://avatars.githubusercontent.com/u/433708?v=4)](https://github.com/zemd "zemd (4 commits)")

---

Tags

breadcrumbsmenusymfonysymfony-componentsymfonymenubreadcrumbs

### Embed Badge

![Health badge](/badges/zemd-symfony-menu/health.svg)

```
[![Health](https://phpackages.com/badges/zemd-symfony-menu/health.svg)](https://phpackages.com/packages/zemd-symfony-menu)
```

###  Alternatives

[contributte/menu-control

Menu control for Nette framework

29108.6k1](/packages/contributte-menu-control)[carrooi/nette-menu

Menu control for Nette framework

2950.0k1](/packages/carrooi-nette-menu)[slope-it/breadcrumb-bundle

A bundle for generating dynamic breadcrumbs in Symfony applications

1865.5k](/packages/slope-it-breadcrumb-bundle)[extpoint/yii2-megamenu

Configurable site map with auto generate page title, breadcrumbs and navigation

3310.9k](/packages/extpoint-yii2-megamenu)[geeklabs/ci4-breadcrumbs

Breadcrumb navigation for CodeIgniter 4

2813.5k](/packages/geeklabs-ci4-breadcrumbs)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
