TYPO3 Logo
TYPO3 Core Changelog
Options
Give feedback View source How to edit Edit on GitHub Full documentation (single file)

TYPO3 Core Changelog

  • ChangeLog v14
    • 14.0 Changes
    • 14.x Changes by type
  • ChangeLog v13
    • 13.4.x Changes
    • 13.4 Changes
    • 13.3 Changes
    • 13.2 Changes
    • 13.1 Changes
    • 13.0 Changes
    • 13.x Changes by type
  • ChangeLog v12
    • 12.4.x Changes
    • 12.4 Changes
    • 12.3 Changes
    • 12.2 Changes
    • 12.1 Changes
    • 12.0 Changes
    • 12.x Changes by type
  • ChangeLog v11
    • 11.5.x Changes
    • 11.5 Changes
    • 11.4 Changes
    • 11.3 Changes
    • 11.2 Changes
    • 11.1 Changes
    • 11.0 Changes
    • 11.x Changes by type
  • ChangeLog v10
    • 10.4.x Changes
    • 10.4 Changes
    • 10.3 Changes
    • 10.2 Changes
    • 10.1 Changes
    • 10.0 Changes
    • 10.x Changes by type
  • ChangeLog v9
    • 9.5.x Changes
    • 9.5 Changes
    • 9.4 Changes
    • 9.3 Changes
    • 9.2 Changes
    • 9.1 Changes
    • 9.0 Changes
    • 9.x Changes by type
  • ChangeLog v8
    • 8.7.x Changes
    • 8.7 Changes
    • 8.6 Changes
    • 8.5 Changes
    • 8.4 Changes
    • 8.3 Changes
    • 8.2 Changes
    • 8.1 Changes
    • 8.0 Changes
    • 8.x Changes by type
  • ChangeLog v7
    • 7.6.x Changes
    • 7.6 Changes
    • 7.5 Changes
    • 7.4 Changes
    • 7.3 Changes
    • 7.2 Changes
    • 7.1 Changes
    • 7.0 Changes
    • 7.x Changes by type
  • Documenting Changes
  • Sitemap
  1. TYPO3 Core Changelog
  2. ChangeLog v13
  3. 13.0 Changes
  4. Feature: #102855 - PSR-14 event for modifying resolved link result data
Give feedback Edit on GitHub

Feature: #102855 - PSR-14 event for modifying resolved link result data

See forge#102855

Description

A new PSR-14 event \TYPO3\CMS\Core\LinkHandling\Event\AfterLinkResolvedByStringRepresentationEvent has been introduced which serves as a more powerful replacement for the now removed hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['Link']['resolveByStringRepresentation'] .

The event is being dispatched after LinkService has tried to resolve a given $urn using defined link handlers. This means, the new event is always dispatched, even if a handler successfully resolved the $urn and also even in cases, TYPO3 would have thrown the UnknownLinkHandlerException exception.

Therefore, the new event can not only be used to resolve custom link types but also to modify the link result data of existing link handlers and can additionally also be used to resolve situations where no handler could be found for a t3:// URN.

The event features the following methods:

  • getResult() - Returns the resolved link result data
  • setResult() - Allows to modify the final link result data
  • getUrn() - Returns the link parameter (URN) to be resolved
  • getResolveException() - Returns the exception, which will be thrown in case no link type has been resolved

Example

The event listener class, using the PHP attribute #[AsEventListener] for registration:

use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Core\LinkHandling\Event\AfterLinkResolvedByStringRepresentationEvent;

final class AfterLinkResolvedByStringRepresentationEventListener
{
    #[AsEventListener]
    public function __invoke(AfterLinkResolvedByStringRepresentationEvent $event): void
    {
        if (str_contains($event->getUrn(), 'myhandler://123')) {
            $event->setResult([
                'type' => 'my-type',
            ]);
        }
    }
}
Copied!

Impact

Using the new PSR-14 event, it's now possible to fully modify the resolved link result data from LinkService->resolveByStringRepresentation(), just before the result is being returned. Therefore, even the resolved data of existing handlers can be manipulated.

  • Previous
  • Next
Reference to the headline

Copy and freely share the link

This link target has no permanent anchor assigned. You can make a pull request on GitHub to suggest an anchor. The link below can be used, but is prone to change if the page gets moved.

Copy this link into your TYPO3 manual.

  • Home
  • Contact
  • Issues
  • Repository

Last rendered: Jun 12, 2025 16:14

© since 1997 by the TYPO3 contributors
  • Legal Notice
  • Privacy Policy