PHPackages                             lotos2512/menu-and-breadcrumbs-generator - 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. lotos2512/menu-and-breadcrumbs-generator

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

lotos2512/menu-and-breadcrumbs-generator
========================================

menu and breadcrumbs generator

1.0.3(7y ago)451MITPHPPHP &gt;=7.2.0

Since Nov 19Pushed 7y ago1 watchersCompare

[ Source](https://github.com/lotos2512/menu-and-breadcrumbs-generator)[ Packagist](https://packagist.org/packages/lotos2512/menu-and-breadcrumbs-generator)[ Docs](https://github.com/lotos2512/menu-and-breadcrumbs-generator)[ RSS](/packages/lotos2512-menu-and-breadcrumbs-generator/feed)WikiDiscussions master Synced yesterday

READMEChangelog (4)DependenciesVersions (7)Used By (0)

Menu and breadcrumbs generator
==============================

[](#menu-and-breadcrumbs-generator)

Generate HTML menu and breadcrumbs from php array

[![Latest Stable Version](https://camo.githubusercontent.com/589371ae9c68f4882415be79e3e551e58c771ef8373a11494826f6aa7db0fc7e/68747470733a2f2f706f7365722e707567782e6f72672f6c6f746f73323531322f6d656e752d616e642d62726561646372756d62732d67656e657261746f722f762f737461626c65)](https://packagist.org/packages/lotos2512/menu-and-breadcrumbs-generator)[![Total Downloads](https://camo.githubusercontent.com/758c59cc23c581abb2e76f88ea4afe39f998cf670f94a2ed330c2598daf51492/68747470733a2f2f706f7365722e707567782e6f72672f6c6f746f73323531322f6d656e752d616e642d62726561646372756d62732d67656e657261746f722f646f776e6c6f616473)](https://packagist.org/packages/lotos2512/menu-and-breadcrumbs-generator)[![Latest Unstable Version](https://camo.githubusercontent.com/fe0739763f200e4304300fe7765e8b3c9944790d506a1742aa9aa3e050f81639/68747470733a2f2f706f7365722e707567782e6f72672f6c6f746f73323531322f6d656e752d616e642d62726561646372756d62732d67656e657261746f722f762f756e737461626c65)](https://packagist.org/packages/lotos2512/menu-and-breadcrumbs-generator)[![License](https://camo.githubusercontent.com/a9582a36034723d67fbbddd0a7c7badbe439b77e2eab781f5badefd29a9badd8/68747470733a2f2f706f7365722e707567782e6f72672f6c6f746f73323531322f6d656e752d616e642d62726561646372756d62732d67656e657261746f722f6c6963656e7365)](https://packagist.org/packages/lotos2512/menu-and-breadcrumbs-generator)[![Build Status](https://camo.githubusercontent.com/dd71a27cd8e1f8102eb423eb57a3e608e7be36351178b9ddda96a7914ad6fca1/68747470733a2f2f7472617669732d63692e6f72672f6c6f746f73323531322f6d656e752d616e642d62726561646372756d62732d67656e657261746f722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/lotos2512/menu-and-breadcrumbs-generator)[![Coverage Status](https://camo.githubusercontent.com/4c5d5039f094104de901c353f7ee57075659a7563506b79e6550b99db6bb2cc2/68747470733a2f2f636f6465636f762e696f2f67682f6c6f746f73323531322f6d656e752d616e642d62726561646372756d62732d67656e657261746f722f62616467652e737667)](https://codecov.io/gh/lotos2512/menu-and-breadcrumbs-generator)

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

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
 php composer.phar require lotos2512/menu-and-breadcrumbs-generator

```

Example

Base usage for menu
-------------------

[](#base-usage-for-menu)

```
// Create array like this

$tree = [
    /**
     * СООБЩЕНИЯ
     */
    'personal_messages.php' => [
        'name' => function () {
            return 'Сообщений 10/10';
        },
        'children' => [
            'test' => [
                'name' => 'тest - ',
                'url' => '/admin/test',
                'permission' => true,
                'params' => ['package_id'],
                'namePostFix' => 'package_id',
            ],
            'test2' => [
                'name' => 'тest',
                'url' => '/admin/test2',
                'visible' => 'onPage'
            ],

        ]
    ],
];

$menu = (new MenuGenerator('/admin/test2', $tree))->getMenu();
```

Definitions keys:

name - Name of node, accept sting or callback (required).

url - Url of node.Accept string value.

permission - Use for permission of node.Accept bool value or callback.

params - array with string values, what will be add param form $\_GET to url if the node url is current.

namePostFix - string value, what will get value from $\_GET and add to name of the node if url is current.

children - array with nodes.

visible - string value Node::VISIBLE\_TYPE\_CURRENT\_PAGE, use to show the node if url is current.

Base usage for breadcrumbs

```
$breadcrumbs = (new BreadcrumbsGenerator(new RecursiveBreadcrumbsStrategy(), '/admin/update_transaction.php', $tree))->getBreadcrumbs();
$breadcrumbs = (new BreadcrumbsGenerator(new PrettyUrlBreadcrumbsStrategy(), '/admin/update_transaction.php', $tree))->getBreadcrumbs();

// use RecursiveBreadCrumbsStrategy to create $breadcrumbs for the node, even if the tree is wrong like $tree.
```

use PrettyUrlBreadcrumbsStrategy to create $breadcrumbs for the node if $tree is true. For example you want find breadcrumbs for url - '/cryptography/certificates/view/?id=1' your tree must be like this

```
[
    'cryptography' => [
        'permission' => function () {
            return true;
        },
        'name' =>'Криптография',
        'children' => [
            'certificates' => [
                'name' =>'Сертификаты',
                'url' => '/cryptography/certificates',
                'children' => [
                   'name' =>'Сертификат',
                   'url' => '/cryptography/certificates/view/',
                   'visible' => Node::VISIBLE_TYPE_CURRENT_PAGE,
                ]
            ],
            'create-request' => [
                'name' =>'Запрос сертификата',
                'url' => '/cryptography/create-request',
            ],
            'upload-signed-certificates' => [
                'name' =>'Загрузка подписанных сертификатов',
                'url' => '/cryptography/upload-signed-certificates',
            ]
        ],
    ],
]
```

Custom node HTML for menu

```
/**
 * Class YouMenuGenerator
 */
YourMenuGenerator extends MenuGenerator
{
    /**
    * @see MenuGenerator::getHtmlBlock
    */
    protected function getHtmlBlockParams(Node $node, int $level): array
    {
        return [
            'tdClass' => $node->quailsUrl($this->url) === true ? ' class ="select"' : ' ',
            'menuClass' => "menu$level",
            'url' => $node->getUrlWithParams($this->url),
            'name' => $node->getNameWithPostFix($this->url),
        ];
    }
    protected function htmlTemplate(): string
    {
        return
            '

                    name

            ';
    }
}
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity60

Established project with proven stability

 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

Every ~0 days

Total

5

Last Release

2729d ago

Major Versions

0.0.1 → 1.0.02018-11-19

### Community

Maintainers

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

---

Top Contributors

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

---

Tags

menubreadcrumbsgenerator menu and breadcrumbs

### Embed Badge

![Health badge](/badges/lotos2512-menu-and-breadcrumbs-generator/health.svg)

```
[![Health](https://phpackages.com/badges/lotos2512-menu-and-breadcrumbs-generator/health.svg)](https://phpackages.com/packages/lotos2512-menu-and-breadcrumbs-generator)
```

###  Alternatives

[knplabs/knp-menu

An object oriented menu library

1.4k55.8M287](/packages/knplabs-knp-menu)[knplabs/knp-menu-bundle

This bundle provides an integration of the KnpMenu library

1.4k53.8M315](/packages/knplabs-knp-menu-bundle)[spatie/menu

Html menu generator

7592.9M6](/packages/spatie-menu)[verbb/navigation

Create navigation menus for your site.

90683.7k17](/packages/verbb-navigation)[kartik-v/yii2-widget-sidenav

An enhanced side navigation menu styled for bootstrap (sub repo split from yii2-widgets)

364.0M8](/packages/kartik-v-yii2-widget-sidenav)[contributte/menu-control

Menu control for Nette framework

29108.6k1](/packages/contributte-menu-control)

PHPackages © 2026

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