TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+50
@@ -0,0 +1,50 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-87332:
|
||||
|
||||
====================================================================
|
||||
Deprecation: #87332 - Avoid runtime reflection calls in ObjectAccess
|
||||
====================================================================
|
||||
|
||||
See :issue:`87332`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Class :php:`\TYPO3\CMS\Extbase\Reflection\ObjectAccess` uses reflection to make non public properties gettable and settable.
|
||||
This behaviour is triggered by setting the argument :php:`$forceDirectAccess` of methods
|
||||
|
||||
* :php:`getProperty`
|
||||
* :php:`getPropertyInternal`
|
||||
* :php:`setProperty`
|
||||
|
||||
to :php:`true`. Triggering this behaviour has been marked as deprecated and will be removed in TYPO3 11.0.
|
||||
|
||||
Method :php:`\TYPO3\CMS\Extbase\Reflection\ObjectAccess::buildSetterMethodName` has been marked as deprecated and will be removed in TYPO3 11.0.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
1) Accessing non public properties via the mentioned methods will no longer work in TYPO3 11.0.
|
||||
|
||||
2) Calling :php:`\TYPO3\CMS\Extbase\Reflection\ObjectAccess::buildSetterMethodName` will no longer work in TYPO3 11.0.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
1) All installations that use the mentioned methods with argument :php:`$forceDirectAccess` set to :php:`true`.
|
||||
|
||||
2) All installations that call :php:`\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
|
||||
(:php:`getProperty()`, :php:`hasProperty()`, :php:`isProperty()`, :php:`setProperty()`).
|
||||
|
||||
2) Build setter names manually: :php:`$setterMethodName = 'set' . ucfirst($propertyName);`
|
||||
|
||||
.. index:: PHP-API, FullyScanned, ext:extbase
|
||||
Reference in New Issue
Block a user