PHPackages                             cpsit/cps-shortnr - 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. cpsit/cps-shortnr

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

cpsit/cps-shortnr
=================

routing alias enhancer over middleware

4.0.2(3mo ago)31.1k↓16.7%4GPL-2.0-or-laterPHPPHP ^8.2

Since Jul 15Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/CPS-IT/cps_shortnr)[ Packagist](https://packagist.org/packages/cpsit/cps-shortnr)[ Docs](https://github.com/CPS-IT/cps_shortnr)[ RSS](/packages/cpsit-cps-shortnr/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (4)Versions (13)Used By (0)

ShortNr - TYPO3 Short URL Extension
===================================

[](#shortnr---typo3-short-url-extension)

Routing alias enhancer via middleware for TYPO3 CMS. Generates and resolves short URLs for pages and plugin records using configurable patterns.

Requirements
------------

[](#requirements)

- PHP ^8.2
- TYPO3 ^13.4

Dependencies
------------

[](#dependencies)

- [brannow/typed-pattern-engine](https://github.com/brannow/typed-pattern-engine) ^0.4 - AST-based pattern matching engine

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

[](#installation)

```
composer require cpsit/shortnr
```

The extension auto-registers its middleware and cache configuration.

Configuration
-------------

[](#configuration)

### Default Configuration

[](#default-configuration)

The extension ships with a minimal default configuration in `Configuration/config.yaml`:

```
shortNr:
  _default:
    notFound: "/"
    languageParentField: "l10n_parent"
    languageField: "sys_language_uid"
    identifierField: "uid"

  pages:
    type: page
    table: pages
    pattern: "p{uid:int(min=1)}(-{sys_language_uid:int(min=0,default=0)})"
```

### Pattern Syntax

[](#pattern-syntax)

Patterns use the typed-pattern-engine syntax:

SyntaxDescription`{field:int(min=1)}`Integer with minimum value`{field:int(min=0,default=0)}`Integer with default`(-{field})`Optional segment (parentheses)`PREFIX{field}`Static prefixExample: `NEWS{uid:int(min=1)}(-{sys_language_uid:int(min=0,default=0)})` generates `NEWS123` or `NEWS123-1`

### Adding Custom Configuration

[](#adding-custom-configuration)

Create an event listener to register your configuration file:

```
