Deprecation: #87332 - Avoid runtime reflection calls in ObjectAccess¶
See forge#87332
Description¶
Class \TYPO3\CMS\Extbase\Reflection\ObjectAccess
uses reflection to make non public properties gettable and settable.
This behaviour is triggered by setting the argument $forceDirectAccess
of methods
getProperty
getPropertyInternal
setProperty
to true
. Triggering this behaviour has been marked as deprecated and will be removed in TYPO3 11.0.
Method \TYPO3\CMS\Extbase\Reflection\ObjectAccess::buildSetterMethodName
has been marked as deprecated and will be removed in TYPO3 11.0.
Impact¶
Accessing non public properties via the mentioned methods will no longer work in TYPO3 11.0.
Calling
\TYPO3\CMS\Extbase\Reflection\ObjectAccess::buildSetterMethodName
will no longer work in TYPO3 11.0.
Affected Installations¶
All installations that use the mentioned methods with argument
$forceDirectAccess
set totrue
.All installations that call
\TYPO3\CMS\Extbase\Reflection\ObjectAccess::buildSetterMethodName
.
Migration¶
1) Make sure the affected property is accessible by either making it public or providing getters/hassers/issers or setters
(getProperty()
, hasProperty()
, isProperty()
, setProperty()
).
Build setter names manually:
$setterMethodName = 'set' . ucfirst($propertyName);