Deprecation: #86210 - Protected info extension

See forge#86210

Description

To allow refactoring of the Web -> Info module in TYPO3 v10, the involved controller classes have been disentangled and better encapsulated:

  • Class TYPO3\CMS\Info\Controller\InfoModuleController does not extend TYPO3\CMS\Backend\Module\BaseScriptClass anymore

  • Class TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport does not extend TYPO3\CMS\Backend\Module\AbstractFunctionModule anymore

  • Class TYPO3\CMS\Info\Controller\PageInformationController does not extend TYPO3\CMS\Backend\Module\AbstractFunctionModule anymore

  • Class TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController does not extend TYPO3\CMS\Backend\Module\AbstractFunctionModule anymore

  • Class TYPO3\CMS\Info\Controller\TranslationStatusController does not extend TYPO3\CMS\Backend\Module\AbstractFunctionModule anymore

Setting an instance of class InfoModuleController as global object $GLOBALS['SOBE'] has been marked as deprecated and will be removed in TYPO3 v10.

The following class properties have been set from public to protected and will not be accessible in TYPO3 v10 anymore:

  • TYPO3\CMS\Info\Controller\InfoModuleController->perms_clause

  • TYPO3\CMS\Info\Controller\InfoModuleController->modTSconfig

  • TYPO3\CMS\Info\Controller\InfoModuleController->modMenu_setDefaultList

  • TYPO3\CMS\Info\Controller\InfoModuleController->modMenu_dontValidateList

  • TYPO3\CMS\Info\Controller\InfoModuleController->modMenu_type

  • TYPO3\CMS\Info\Controller\InfoModuleController->extClassConf

  • TYPO3\CMS\Info\Controller\InfoModuleController->extObj

  • TYPO3\CMS\Info\Controller\InfoModuleController->content

  • TYPO3\CMS\Info\Controller\InfoModuleController->pObj

  • TYPO3\CMS\Info\Controller\InfoModuleController->id

  • TYPO3\CMS\Info\Controller\InfoModuleController->CMD

  • TYPO3\CMS\Info\Controller\InfoModuleController->doc

  • TYPO3\CMS\Info\Controller\InfoModuleController->MCONF

  • TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport->pObj

  • TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport->doc

  • TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport->function_key

  • TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport->extClassConf

  • TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport->localLangFile

  • TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport->extObj

  • TYPO3\CMS\Info\Controller\PageInformationController->pObj

  • TYPO3\CMS\Info\Controller\PageInformationController->function_key

  • TYPO3\CMS\Info\Controller\PageInformationController->extClassConf

  • TYPO3\CMS\Info\Controller\PageInformationController->localLangFile

  • TYPO3\CMS\Info\Controller\PageInformationController->extObj

  • TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController->pObj

  • TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController->function_key

  • TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController->extClassConf

  • TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController->localLangFile

  • TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController->extObj

  • TYPO3\CMS\Info\Controller\TranslationStatusController->pObj

  • TYPO3\CMS\Info\Controller\TranslationStatusController->function_key

  • TYPO3\CMS\Info\Controller\TranslationStatusController->extClassConf

  • TYPO3\CMS\Info\Controller\TranslationStatusController->localLangFile

  • TYPO3\CMS\Info\Controller\TranslationStatusController->extObj

The following class methods have been set from public to protected and will not be accessible in TYPO3 v10 anymore:

  • TYPO3CMSInfoControllerInfoModuleController->main()

  • TYPO3CMSInfoControllerInfoModuleController->init()

  • TYPO3CMSInfoControllerInfoModuleController->getModuleTemplate()

  • TYPO3CMSInfoControllerInfoModuleController->menuConfig()

  • TYPO3CMSInfoControllerInfoModuleController->handleExternalFunctionValue()

  • TYPO3CMSInfoControllerInfoModuleController->mergeExternalItems()

  • TYPO3CMSInfoControllerInfoModuleController->getExternalItemConfig()

  • TYPO3CMSInfoControllerInfoModuleController->extObjContent()

  • TYPO3CMSInfoControllerInfoModuleController->getExtObjContent()

  • TYPO3CMSInfoControllerInfoModuleController->checkExtObj()

  • TYPO3CMSInfoControllerInfoModuleController->extObjHeader()

  • TYPO3CMSInfoControllerInfoModuleController->checkSubExtObj()

  • TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport->extObjContent()

  • TYPO3\CMS\Info\Controller\PageInformationController->modMenu()

  • TYPO3\CMS\Info\Controller\PageInformationController->extObjContent()

  • TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController->modMenu()

  • TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController->extObjContent()

  • TYPO3\CMS\Info\Controller\TranslationStatusController->getContentElementCount()

  • TYPO3\CMS\Info\Controller\TranslationStatusController->getLangStatus()

  • TYPO3\CMS\Info\Controller\TranslationStatusController->renderL10nTable()

  • TYPO3\CMS\Info\Controller\TranslationStatusController->modMenu()

  • TYPO3\CMS\Info\Controller\TranslationStatusController->extObjContent()

Impact

If an extension accesses one of the above protected properties or calls one of the above protected methods, a E_USER_DEPRECATED error will be triggered.

Affected Installations

Various extensions extend the Web -> Info module. Those typically call ExtensionManagementUtility::insertModuleFunction('web_info', ...) in ext_tables.php or ext_localconf.php. Those instances may need adaptions.

Migration

If extending the info module with an own extension, the extension should be adapted to not call the above methods or properties any longer. Most usages can be easily adapted, for instance to retrieve the current page id, use GeneralUtility::_GP('id') instead of $this->pObj->id.