Deprecation: #84321 - Protected methods and properties in AddController

See Issue #84321

Description

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.

Impact

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.

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.