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.5k[2 issues](https://github.com/calien666/persisted-sanitized-routing/issues)MITPHPPHP &gt;=7.2

Since Nov 3Pushed 4y ago1 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 today

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 17% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

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

1594d 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

[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40543.5k](/packages/wazum-sluggi)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103574.3k69](/packages/friendsoftypo3-content-blocks)[typo3/cms-styleguide

TYPO3 extension to showcase TYPO3 Backend capabilities

105768.9k39](/packages/typo3-cms-styleguide)[clickstorm/cs-seo

\[clickstorm\] SEO - Extension for TYPO3. Enables important onpage features for search engine optimization (SEO). Expands the page settings and any desired records for example with a preview for Google search results (SERP) Structured Data (JSON-LD) and a Focus Keyword. Restrictive hreflang and canonical tags. Modules for metadata of records and alternative texts of images. Further features are shown in the extension manual.

37542.0k1](/packages/clickstorm-cs-seo)[jweiland/events2

Events 2 - Create single and recurring events

2168.1k3](/packages/jweiland-events2)[in2code/lux

Living User eXperience - LUX - the Marketing Automation tool for TYPO3.

2160.9k1](/packages/in2code-lux)

PHPackages © 2026

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