Files
cms-core/Documentation/Changelog/13.0/Breaking-102835-StrictTypingInFinalTypoLinkCodecService.rst
T

53 lines
1.7 KiB
ReStructuredText

.. include:: /Includes.rst.txt
.. _breaking-102835-1705314374:
===============================================================
Breaking: #102835 - Strict typing in final TypoLinkCodecService
===============================================================
See :issue:`102835`
Description
===========
The :php:`\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 :php:`decode()`
method's first parameter :php:`$typoLink` is now a type hinted :php:`string`.
This has been done in combination with the introduction of the two new PSR-14
events :php:`BeforeTypoLinkEncodedEvent` and :php:`AfterTypoLinkDecodedEvent`,
which allow to fully influence the encode and decode functionality, making
any cross classing superfluous.
Impact
======
Extending / cross classing :php:`TypoLinkCodecService` does no longer work
and will lead to PHP errors.
Calling :php:`decode()` with the first parameter :php:`$typolink` being not
a :php:`string` will lead to a PHP TypeError.
Affected installations
======================
All installations extending / cross classing :php:`TypoLinkCodecService` or
calling :php:`decode()` with the first parameter :php:`$typolink` not being
a :php:`string`.
Migration
=========
Instead of extending / cross classing :php:`TypoLinkCodecService` use the
:doc:`new PSR-14 events <../13.0/Feature-102835-AddPSR-14EventsToManipulateTypoLinkCodecService>`
to modify the functionality.
Ensure to always provide a :php:`string` as first parameter :php:`$typolink`,
when calling :php:`decode()` in your extension code.
.. index:: PHP-API, NotScanned, ext:core