PHPackages                             calien/persisted-sanitized-routing - 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. calien/persisted-sanitized-routing

Abandoned → [calien/extended-routing](/?search=calien%2Fextended-routing)ArchivedTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

calien/persisted-sanitized-routing
==================================

Persisted Sanitized Pattern Routing for TYPO3

1.0.4(4y ago)12.4k[2 issues](https://github.com/calien666/persisted-sanitized-routing/issues)MITPHPPHP &gt;=7.2

Since Nov 3Pushed 4y ago2 watchersCompare

[ Source](https://github.com/calien666/persisted-sanitized-routing)[ Packagist](https://packagist.org/packages/calien/persisted-sanitized-routing)[ RSS](/packages/calien-persisted-sanitized-routing/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependencies (1)Versions (6)Used By (0)

Persisted sanitized pattern mapping
===================================

[](#persisted-sanitized-pattern-mapping)

WARNING
-------

[](#warning)

This package is abandoned. Please use instead. All features of this project are included there, too.

What does it do?
----------------

[](#what-does-it-do)

Enables the possibility generating sanitized URL parts from persisted patterns. The default PersistedPatternAspect takes e.g. database values and uses them "as they are", including umlauts, special characters and spaces, which will return them into your url and result in unexpected behaviours.

This PersistedSanitizedRoutingAspect encodes and decodes the database part and will make better readable URL parts.

How does it work?
-----------------

[](#how-does-it-work)

Adds a new routing aspect extending the PersistedPatternMapper from TYPO3 core with sanitized URL parts.

```
aspects:
  country:
    type: PersistedSanitizedPatternMapper
    tableName: static_countries
    routeFieldPattern: '^(.*)-(?P\d+)$'
    routeFieldResult: '{cn_short_de|sanitized}-{uid}'
    localeMap:
      - locale: 'de_*'
        field: cn_short_de
      - locale: 'en_*'
        field: cn_short_en
  territory:
    type: PersistedSanitizedPatternMapper
    tableName: static_territories
    routeFieldPattern: '^(.*)-(?P\d+)$'
    routeFieldResult: '{tr_name_de|sanitized}-{uid}'
    localeMap:
      - locale: 'de_*'
        field: tr_name_de
      - locale: 'en_*'
        field: tr_name_en
```

As you can see, localization is respected, if needed.

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

[](#installation)

Only install the extension and configure your persisted pattern mappers as described above fitting your needs. The |sanitized part will respect the field you want to sanitize.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity49

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

Total

5

Last Release

1495d ago

PHP version history (2 changes)1.0.0PHP &gt;=7.3

1.0.4PHP &gt;=7.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/1a1ddeb615ab1289506094f767ffacee7e1deaa6c914527b116cf88fcbe62e68?d=identicon)[calien666](/maintainers/calien666)

---

Top Contributors

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

---

Tags

routingtypo3

### Embed Badge

![Health badge](/badges/calien-persisted-sanitized-routing/health.svg)

```
[![Health](https://phpackages.com/badges/calien-persisted-sanitized-routing/health.svg)](https://phpackages.com/packages/calien-persisted-sanitized-routing)
```

###  Alternatives

[in2code/powermail

Powermail is a well-known, editor-friendly, powerful and easy to use mailform extension for TYPO3 with a lots of features

982.5M38](/packages/in2code-powermail)[in2code/powermail_cond

Add conditions (via AJAX) to powermail forms for fields and pages

10530.6k](/packages/in2code-powermail-cond)[jweiland/events2

Events 2 - Create single and recurring events

2062.4k2](/packages/jweiland-events2)[quellenform/t3x-iconpack

Provides an iconpack-registry for custom iconpacks.

1542.7k25](/packages/quellenform-t3x-iconpack)

PHPackages © 2026

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