---
title: "Deprecation: #87332 - Avoid runtime reflection calls in ObjectAccess"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-87332"
source: "Changelog/10.0/Deprecation-87332-AvoidRuntimeReflectionCallsInObjectAccess.rst"
modified: "2026-09-15T10:46:36+00:00"
---

# Deprecation: #87332 - Avoid runtime reflection calls in ObjectAccess

See [forge#87332](https://forge.typo3.org/issues/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

1.  Accessing non public properties via the mentioned methods will no longer work in TYPO3 11.0.
1.  Calling `\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 `$forceDirectAccess` set to `true`.
1.  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()`).

1.  Build setter names manually: `$setterMethodName = 'set' . ucfirst($propertyName);`
