Deprecation: #84321 - Protected methods and properties in AddController

See forge#84321


This file is about third party usage (consumer that call the class as well as signals or hooks depending on it) of TYPO3\CMS\Backend\Controller\Wizard\AddController.

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

  • [not scanned] $content
  • $processDataFlag
  • [not scanned] $pid
  • [not scanned] $table
  • [not scanned] $id
  • $P
  • $returnEditConf

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] init()
  • [not scanned] main()

Due to refactoring the init() method does not perform a redirect anymore in case no pid was set by GET params. This redirect has been moved and will be performed for legacy code by the deprecated main() method now.

Additionally $GLOBALS['SOBE'] is not set by the AddController constructor anymore.


Calling one of the above methods or accessing one of the above properties on an instance of AddController 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 AddController. In general all extensions that set properties or call methods except mainAction() are affected.


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.