---
title: "Deprecation: #84341 - Protected methods and properties in NewRecordController"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-84341"
source: "Changelog/9.2/Deprecation-84341-ProtectedMethodsAndPropertiesInNewRecordController.rst"
modified: "2026-09-15T10:46:36+00:00"
---

# Deprecation: #84341 - Protected methods and properties in NewRecordController

See [forge#84341](https://forge.typo3.org/issues/84341)

## Description

This file is about third party usage of `\TYPO3\CMS\Backend\Controller\NewRecordController`.

A series of class properties has been set to protected.
They will throw deprecation warnings if called public from outside:

-   \[not scanned\] `pageinfo`
-   `pidInfo`
-   `newPagesInto`
-   `newContentInto`
-   `newPagesAfter`
-   `web_list_modTSconfig`
-   `allowedNewTables`
-   `deniedNewTables`
-   `web_list_modTSconfig_pid`
-   `allowedNewTables_pid`
-   `deniedNewTables_pid`
-   `code`
-   `R_URI`
-   \[not scanned\] `id`
-   `returnUrl`
-   `pagesOnly`
-   \[not scanned\] `perms_clause`
-   \[not scanned\] `content`
-   `tRows`

All methods not used as entry points by `\TYPO3\CMS\Backend\Http\RouteDispatcher` will be
removed or set to protected in v10 and throw deprecation warnings if used from a third party:

-   \[not scanned\] `main()`
-   `pagesOnly()`
-   `regularNew()`
-   `sortNewRecordsByConfig()`
-   `linkWrap()`

## Impact

Calling one of the above methods or accessing one of the above properties on an instance of
`NewRecordController` will throw a deprecation warning in v9 and a PHP fatal in v10.

## Affected Installations

The extension scanner will find most usages, but may also find some false positives. The most
common property and method names like `$content` are not registered and will not be found
if an extension uses that on an instance of `NewRecordController`.

In general all extensions that set properties or call methods except `mainAction()` are affected.

## Migration

In general, extensions should not instantiate and re-use controllers of the core. Existing
usages should be rewritten to be free of calls like these.
