Deprecation: #100454 - Legacy tree implementations

See forge#100454

Description

Due to many refactorings in TYPO3's tree implementations in the past versions, many implementations and functionality of the legacy rendering \TYPO3\CMS\Backend\Tree\AbstractTreeView is not needed anymore.

The following PHP classes are not in use anymore and have been marked as deprecated:

  • \TYPO3\CMS\Backend\Tree\View\BrowseTreeView
  • \TYPO3\CMS\Backend\Tree\View\ElementBrowserPageTreeView

The base class is still available, but discouraged to be used or extended, even though TYPO3 still uses this in a few places.

The following properties and methods within the base class AbstractTreeView have either been marked as deprecated or declared as internal:

  • AbstractTreeView->thisScript
  • AbstractTreeView->BE_USER
  • AbstractTreeView->clause
  • AbstractTreeView->title
  • AbstractTreeView->table
  • AbstractTreeView->parentField
  • AbstractTreeView->orderByFields
  • AbstractTreeView->fieldArray
  • AbstractTreeView->defaultList
  • AbstractTreeView->determineScriptUrl()
  • AbstractTreeView->getThisScript()
  • AbstractTreeView->PM_ATagWrap()
  • AbstractTreeView->addTagAttributes()
  • AbstractTreeView->getRootIcon()
  • AbstractTreeView->getIcon()
  • AbstractTreeView->getRootRecord()
  • AbstractTreeView->getTitleStr()
  • AbstractTreeView->getTitleAttrib()

Impact

Instantiating the deprecated classes or calling the deprecated methods will trigger a PHP deprecation warning, except for AbstractTreeView->getThisScript(), which is still used internally by deprecated code.

The Extension Scanner will find those usages and additionally also reports usages of the corresponding public properties of the AbstractTreeView class.

Affected installations

TYPO3 installations with custom extensions using this functionality. This is usually the case for old installations from TYPO3 v6 or TYPO3 v4 times.

Migration

It is recommended to avoid generating the markup directly in PHP. Instead use one of various other tree functionalities (for example, see PageTree implementations) in PHP and render trees via web components or Fluid.