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.