PHPackages                             zaxcms/routers - 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. zaxcms/routers

ActiveLibrary

zaxcms/routers
==============

Helpers for routers in Nette Framework

v1.0.1(11y ago)3102PHPPHP &gt;=5.4.0

Since Jan 14Pushed 11y ago1 watchersCompare

[ Source](https://github.com/ZaxCMS/Routers)[ Packagist](https://packagist.org/packages/zaxcms/routers)[ RSS](/packages/zaxcms-routers/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (3)Versions (3)Used By (0)

This library contains some useful helpers for routing in Nette framework.

Zax\\Application\\Routers\\MetadataBuilder
==========================================

[](#zaxapplicationroutersmetadatabuilder)

This class is a builder for metadata, it add the ability to use aliases and a workaround for UI\\Multiplier.

It takes two params in constructor - presenter and action. Alternatively, you can pass array of metadata.

Aliases
-------

[](#aliases)

```
$default = ['presenter' => 'Default', 'action' => 'default'];
$meta = (new MetadataBuilder($default))
	->addAlias('bar', 'some-deep-control-param')
	->build();
$router[] = new Route('/test-alias[/]', $meta);
```

Calling URL `/test-alias/foo` will result in value "foo" being assigned to persistent parameter `some-deep-control-param`.

Signal aliases
--------------

[](#signal-aliases)

Signals need a different treatment, because it's only a single parameter `do`.

```
$meta = (new MetadataBuilder($default))
	->addSignalAlias('add', 'some-deep-control-add')
	->build();
$router[] = new Route('/test-do[/action-]', $meta);
```

Calling URL `/test-do/action-add` will call signal `add` in `some-deep-control`.

Boolean parameters
------------------

[](#boolean-parameters)

Boolean parameters will only display some text in URL to represent `TRUE`.

```
$meta = (new MetadataBuilder($default))
	->addAlias('details', 'some-deep-control-showDetails')
	->addBooleanParam('details')
	->build();
$router[] = new Route('/test-boolean[/]', $meta);
```

Calling URL `/test-boolean/details` will set parameter `some-deep-control-showDetails` to `TRUE`.

Array parameters
----------------

[](#array-parameters)

By default, Nette works with array persistent params by making a special param in URL *for every value*. This behavior can quickly clutter the URL, especially when using components. Fortunately, this library can turn

```
/test-array?some-deep-control-selected[]=1&some-deep-control-selected[]=5&some-deep-control-selected[]=10

```

into

```
/test-array?selected=1+5+10

```

like this

```
$meta = (new MetadataBuilder($default))
	->addAlias('selected', 'some-deep-control-selected')
	->addArrayParam('selected', '+') // second parameter (delimiter) is optional, ',' is default
	->build();
$router[] = new Route('/test-array', $meta);
```

Working with Multiplier
-----------------------

[](#working-with-multiplier)

Multipliers can be tricky to handle in routers. Fortunately, there's the ability to use aliases inside other aliases!

```
$meta = (new MetadataBuilder($default))
	->addAlias('item', 'list-selectedItemId')
	->addAlias('view', 'list-selectedItem--view')
	->build();
$router[] = new Route('/test-multiplier[/item-[/view-]]', $meta);
```

Control `list-selectedItem` is a Multiplier, `` will get replaced by value inside `list-selectedItemId`.

Therefore, calling URL `/test-multiplier/item-34/view-edit` will set `list-selectedItem-34-view` to `edit`.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

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

Every ~125 days

Total

2

Last Release

4016d ago

### Community

Maintainers

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

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/zaxcms-routers/health.svg)

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

###  Alternatives

[contributte/forms-bootstrap

Nette extension for Bootstrap forms

211.1M4](/packages/contributte-forms-bootstrap)[tomaj/nette-api

Nette api

36261.8k4](/packages/tomaj-nette-api)[nasext/dependent-select-box

Dependent Select Box for Nette Framework.

21262.8k2](/packages/nasext-dependent-select-box)

PHPackages © 2026

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