PHPackages                             sitegeist/fusionlinkprototypes - 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. sitegeist/fusionlinkprototypes

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

sitegeist/fusionlinkprototypes
==============================

Missing Prototypes for easier linking to actions and modules

v1.0.1(3y ago)229.8k↓35.3%3GPL-3.0-or-laterPHP

Since Jun 21Pushed 3y ago1 watchersCompare

[ Source](https://github.com/sitegeist/Sitegeist.FusionLinkPrototypes)[ Packagist](https://packagist.org/packages/sitegeist/fusionlinkprototypes)[ RSS](/packages/sitegeist-fusionlinkprototypes/feed)WikiDiscussions master Synced 1mo ago

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

Sitegeist.FusionLinkPrototypes
==============================

[](#sitegeistfusionlinkprototypes)

Missing Prototypes for easier linking to actions and modules.
-------------------------------------------------------------

[](#missing-prototypes-for-easier-linking-to-actions-and-modules)

By default the linking between backend modules or from backend modules has been cumbersome. Since modules use a subrequest the Neos UriBuilder created all links inside the module.

This package adds the prototypes `Sitegeist.FusionLinkPrototypes:ActionUri`, `Sitegeist.FusionLinkPrototypes:ActionLink`and `Sitegeist.FusionLinkPrototypes:ModuleUri`, `Sitegeist.FusionLinkPrototypes:ModuleLink` that always use the current main request to avoid this confusion.

!!! Those prototypes likely will end up in Neos eventually. The package here provides a replacement for older versions of Neos plus allows to play with the api and behavior before creating a core-pr !!!

### Authors &amp; Sponsors

[](#authors--sponsors)

- Martin Ficzel -

*The development and the public-releases of this package is generously sponsored by our employer .*

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

[](#installation)

Sitegeist.FusionLinkPrototypes is available via packagist run `composer require sitegeist/fusionlinkprototypes`. We use semantic versioning so every breaking change will increase the major-version number.

Usage
-----

[](#usage)

### `Sitegeist.FusionLinkPrototypes:ActionUri`

[](#sitegeistfusionlinkprototypesactionuri)

Built a URI to a controller action

- `package` (string) The package key (e.g. `My.Package`)
- `subpackage` (string) The subpackage, empty by default
- `controller` (string) The controller name (e.g. `Registration`)
- `action` (string) The action name (e.g. `new`)
- `arguments` (array) Arguments to the action by named key
- `format` (string) An optional request format (e.g. `html`)
- `section` (string) An optional fragment (hash) for the URI
- `additionalParams` (array) Additional URI query parameters by named key
- `addQueryString` (boolean) Whether to keep the query parameters of the current URI
- `argumentsToBeExcludedFromQueryString` (array) Query parameters to exclude for `addQueryString`
- `absolute` (boolean) Whether to create an absolute URI

Example::

```
uri = Sitegeist.FusionLinkPrototypes:ActionUri {
	package = 'My.Package'
	controller = 'Registration'
	action = 'new'
}

```

### `Sitegeist.FusionLinkPrototypes:ActionLink`

[](#sitegeistfusionlinkprototypesactionlink)

Extends `Neos.Fusion:Tag` and adds an `attributes.href` defined as `Sitegeist.FusionLinkPrototypes:ActionUri`

Tag properties:

- `tagName` (string) Tag name of the HTML element, defaults to `a`
- `content` (string) The inner content of the element, will only be rendered if the tag is not self-closing and the closing tag is not omitted
- `attributes` (iterable) Tag attributes as key-value pairs. Default is `Neos.Fusion:DataStructure`. If a non iterable is returned the value is casted to string.
- `attributes.href` defined as `Sitegeist.FusionLinkPrototypes:ActionLink`
- ... for more see the documentation of `Neos.Fusion:Tag`

ActionUri properties:

- `package` (string) The package key (e.g. `My.Package`)
- `subpackage` (string) The subpackage, empty by default
- `controller` (string) The controller name (e.g. `Registration`)
- `action` (string) The action name (e.g. `new`)
- `arguments` (array) Arguments to the action by named key
- `format` (string) An optional request format (e.g. `html`)
- `section` (string) An optional fragment (hash) for the URI
- `additionalParams` (array) Additional URI query parameters by named key
- `addQueryString` (boolean) Whether to keep the query parameters of the current URI
- `argumentsToBeExcludedFromQueryString` (array) Query parameters to exclude for `addQueryString`
- `absolute` (boolean) Whether to create an absolute URI

Example::

```
link = Sitegeist.FusionLinkPrototypes:ActionLink {
	content = "Register new user"
	package = 'My.Package'
	controller = 'Registration'
	action = 'new'
}

```

### `Sitegeist.FusionLinkPrototypes:ModuleUri`

[](#sitegeistfusionlinkprototypesmoduleuri)

Built a URI to a backend module. This allows to link between backend modules !!! For links to the Neos content module read the dedicated [section](#linking-to-the-neos-content-module) !!!

- `module` (string) The module path (e.g. `content` or `management/sites`)
- `controller` (string) The controller name (e.g. `Registration`)
- `action` (string) The action name (e.g. `new`)
- `arguments` (array) Arguments to the action by named key
- `format` (string) An optional request format (e.g. `html`)
- `section` (string) An optional fragment (hash) for the URI
- `additionalParams` (array) Additional URI query parameters by named key
- `addQueryString` (boolean) Whether to keep the query parameters of the current URI
- `argumentsToBeExcludedFromQueryString` (array) Query parameters to exclude for `addQueryString`
- `absolute` (boolean) Whether to create an absolute URI

Example::

```
uri = Sitegeist.FusionLinkPrototypes:ModuleUri {
	module="administration/sites"
	action="edit"
	arguments.site = ${site}
}

```

### `Sitegeist.FusionLinkPrototypes:ModuleLink`

[](#sitegeistfusionlinkprototypesmodulelink)

Extends `Neos.Fusion:Tag` and adds an `attributes.href` defined as `Sitegeist.FusionLinkPrototypes:ModuleUri`!!! For links to the Neos content module read the dedicated [section](#linking-to-the-neos-content-module) !!!

Tag properties:

- `tagName` (string) Tag name of the HTML element, defaults to `a`
- `content` (string) The inner content of the element, will only be rendered if the tag is not self-closing and the closing tag is not omitted
- `attributes` (iterable) Tag attributes as key-value pairs. Default is `Neos.Fusion:DataStructure`. If a non iterable is returned the value is casted to string.
- `attributes.href` defined as `Sitegeist.FusionLinkPrototypes:ActionLink`
- ... for more see the documentation of `Neos.Fusion:Tag`

ModuleUri properties:

- `module` (string) The module path (e.g. `content` or `management/sites`)
- `controller` (string) The controller name (e.g. `Registration`)
- `action` (string) The action name (e.g. `new`)
- `arguments` (array) Arguments to the action by named key
- `format` (string) An optional request format (e.g. `html`)
- `section` (string) An optional fragment (hash) for the URI
- `additionalParams` (array) Additional URI query parameters by named key
- `addQueryString` (boolean) Whether to keep the query parameters of the current URI
- `argumentsToBeExcludedFromQueryString` (array) Query parameters to exclude for `addQueryString`
- `absolute` (boolean) Whether to create an absolute URI

Example::

```
link = Sitegeist.FusionLinkPrototypes:ModuleLink {
	content = "To the site module"
	module="administration/sites"
	action="edit"
	arguments.site = ${site}
}

```

### Linking to the Neos content-module

[](#linking-to-the-neos-content-module)

As the Neos content-module is not based on other backend modules it is linked via `Sitegeist.FusionLinkPrototypes:ActionLink`.

Example::

```
contentModuleLink = Sitegeist.FusionLinkPrototypes:ActionLink {
	content = "To the content module"
	package="Neos.Neos.Ui"
	controller="Backend"
	action="index"
	arguments.node = ${node}
}

contentModuleUri = Sitegeist.FusionLinkPrototypes:ActionUri {
	module="administration/sites"
	action="edit"
	arguments.node = ${node}
}

```

Contribution
------------

[](#contribution)

We will gladly accept contributions. Please send us pull requests.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity30

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity51

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 ~1 days

Total

2

Last Release

1426d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/51e0a02d8e12b73949ec858638aa7e295e103022cc5a879f86ac8532c2c170bd?d=identicon)[sitegeist](/maintainers/sitegeist)

![](https://www.gravatar.com/avatar/829b4ccb51e8cff3c1e4b59d60cfe8d1b86f6d77fc31a6b3fc99227f432542ca?d=identicon)[mficzel](/maintainers/mficzel)

---

Top Contributors

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

---

Tags

neos-fusionneoscms

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/sitegeist-fusionlinkprototypes/health.svg)

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

###  Alternatives

[neos/fusion-form

Fusion Form

19724.3k31](/packages/neos-fusion-form)[packagefactory/atomicfusion-proptypes

Fusion port of react-propTypes for the fusion-prototypes PackageFactory.AtomicFusion:Component and Neos.Fusion:Component

12200.0k4](/packages/packagefactory-atomicfusion-proptypes)

PHPackages © 2026

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