Breaking: #102835 - Strict typing in final TypoLinkCodecService

See forge#102835

Description

The \TYPO3\CMS\Core\LinkHandling\TypoLinkCodecService , used to encode and decode TypoLinks, has been declared readonly and set final. Additionally, the class does now use strict typing and the decode() method's first parameter $typoLink is now a type hinted string.

This has been done in combination with the introduction of the two new PSR-14 events BeforeTypoLinkEncodedEvent and AfterTypoLinkDecodedEvent, which allow to fully influence the encode and decode functionality, making any cross classing superfluous.

Impact

Extending / cross classing TypoLinkCodecService does no longer work and will lead to PHP errors.

Calling decode() with the first parameter $typolink being not a string will lead to a PHP TypeError.

Affected installations

All installations extending / cross classing TypoLinkCodecService or calling decode() with the first parameter $typolink not being a string.

Migration

Instead of extending / cross classing TypoLinkCodecService use the new PSR-14 events to modify the functionality.

Ensure to always provide a string as first parameter $typolink, when calling decode() in your extension code.