PHPackages                             famelo/navigation - 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. famelo/navigation

ActiveTypo3-flow-package[Utility &amp; Helpers](/categories/utility)

famelo/navigation
=================

0142PHP

Since Feb 28Pushed 12y ago2 watchersCompare

[ Source](https://github.com/mneuhaus/Famelo.Navigation)[ Packagist](https://packagist.org/packages/famelo/navigation)[ RSS](/packages/famelo-navigation/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Famelo.Navigation
=================

[](#famelonavigation)

This package uses a combination of Routes.yaml and Policy.yaml to generate a menu for you :)

```
-
  name: 'Home'
  uriPattern: 'home'
  navigation: 'Home'
  defaults:
    '@format': 'html'
    '@action':     'index'
    '@controller': 'Standard'
    '@package': 'My.Package'
  appendExceedingArguments: true

-
  name: 'Products'
  uriPattern: 'products'
  navigation: 'Products'
  defaults:
    '@format': 'html'
    '@action':     'index'
    '@controller': 'Products'
    '@package': 'My.Package'
  appendExceedingArguments: true

-
  name: 'Product in Foo Category'
  uriPattern: 'products/foo'
  navigation: 'Foo'
  defaults:
    '@format': 'html'
    '@action':     'foo'
    '@controller': 'Products'
    '@package': 'My.Package'
  appendExceedingArguments: true
```

That routes will be parsed based on the paths into:

```
Home
Products
  - Foo

```

Now let's render a menu from that information:

```
{namespace n=Famelo\Navigation\ViewHelpers}

      {item.label}

              {child.label}

```

Something you don't see, which happens in the background is, that each NavigationItem is checked through the Policy.yaml if the current user has access to it. So, if you add a Policy.yaml like this:

```
resources:
  methods:
    Products: 'method(My\Package\Controller\ProductsController->.*Action())'

roles:
  Administrator: []

acls:
  Administrator:
    methods:
      Products: GRANT
```

Only the Logged in Administrator will see the Products NavigationItems :)

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

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.

### Community

Maintainers

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

### Embed Badge

![Health badge](/badges/famelo-navigation/health.svg)

```
[![Health](https://phpackages.com/badges/famelo-navigation/health.svg)](https://phpackages.com/packages/famelo-navigation)
```

###  Alternatives

[spatie/dns

Retrieve DNS records

6082.3M17](/packages/spatie-dns)[fancyguy/webroot-installer

A composer installer for libraries that live in an application webroot.

1311.3M15](/packages/fancyguy-webroot-installer)[kartik-v/yii2-widget-colorinput

An enhanced Yii 2 widget encapsulating the HTML 5 color input (sub repo split from yii2-widgets)

324.8M10](/packages/kartik-v-yii2-widget-colorinput)[tonegabes/filament-better-options

Filament form components for better radio and checkbox options.

155.2k](/packages/tonegabes-filament-better-options)[p3ym4n/jdate

Date converter from Jalali to Georgian and vice versa. It has Carbon instance inside and it's Laravel friendly.

101.8k2](/packages/p3ym4n-jdate)

PHPackages © 2026

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