Breaking: #101309 - Introduce type declarations in DriverInterface¶
See forge#101309
Description¶
Return and param type declarations have been introduced for all methods stubs
of \TYPO3\
.
Also, method \TYPO3\
has been removed.
Impact¶
In consequence, all implementations of \TYPO3\
need
to reflect those changes and add the same return and param type declarations.
In case, any of the Core implementations are extended, overridden methods might need to be adjusted.
The Core classes, implementing \TYPO3\
, are:
\TYPO3\
CMS\ Core\ Resource\ Driver\ Abstract Driver \TYPO3\
CMS\ Core\ Resource\ Driver\ Abstract Hierarchical Filesystem Driver \TYPO3\
CMS\ Core\ Resource\ Driver\ Local Driver
Concerning removed method \TYPO3\
:
Said method didn't sanitize at all, it didn't respect the given $charset
param and simply
returned the input string. Abstract classes MAY fulfill the interface contract but if they do so,
they MUST do it right. There is no benefit in fulfilling it just signature wise, it MUST fulfill
it functional wise and in this case it didn't. That's why Local
reimplements sanitize
completely.
As a consequence of this removal, all classes that extend either
\TYPO3\
or
\TYPO3\
, need to
implement method sanitize
.
Affected installations¶
All installations that implement \TYPO3\
or that
extend either \TYPO3\
or
\TYPO3\
.
Migration¶
As for the type declarations: Add the same param and return type declarations the interface does.
As for the removed method \TYPO3\
:
Implement the method according to your driver capabilities.