smic/page-router-event

There is no license information available for the latest version (dev-master) of this package.

Sends the missing PageUriGenerated PSR-14 event from the PageRouter

Installs: 1 152

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:typo3-cms-extension

dev-master 2021-03-09 04:19 UTC

This package is auto-updated.

Last update: 2021-04-09 04:30:50 UTC


README

Provides a PSR-14 event to respond to generated page URIs

The core TYPO3 PageRouter doesn't offer the possibility to modify generated URLs. This extension replaces the PageRouter->generateUri method and dispatches a PSR-14 event to react to or modify generated URLs.

TYPO3 core issue

An issue for the TYPO3 core has been created on forge: #92780. This extension is meant as an intermediate solution and becomes obsolete as soon as the core PageRouter offers such an event.

Usage

Install:

composer req smic/page-router-event dev-master

Register an event listener in the Services.yaml:

services:

  Vendor\MyExt\EventListener\ReactToGeneratedUri:
    tags:
      - name: event.listener
        identifier: 'MyExtReactToGeneratedUri'
        event: Smic\PageRouterEvent\Event\PageUriGenerated

Your event listener receives a Smic\PageRouterEvent\Event\PageUriGenerated event that offers:

  • getters for input data that were used to generate the URL ->getFragment(), ->getParameters(), ->getRoute(), ->getSite(), ->getType()
  • a getter for the generated URI ->getUri()
  • the PageRouter itself ->getPageRouter()
  • and a setter to replace the generated URI ->setUri($uri)

If you're not familiar with PSR-14 event handling in TYPO3 have a look at: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Hooks/EventDispatcher/Index.html