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 extendTYPO3\CMS\Backend\Module\BaseScriptClass
anymoreClass
TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport
does not extendTYPO3\CMS\Backend\Module\AbstractFunctionModule
anymoreClass
TYPO3\CMS\Info\Controller\PageInformationController
does not extendTYPO3\CMS\Backend\Module\AbstractFunctionModule
anymoreClass
TYPO3\CMS\Info\Controller\InfoPageTyposcriptConfigController
does not extendTYPO3\CMS\Backend\Module\AbstractFunctionModule
anymoreClass
TYPO3\CMS\Info\Controller\TranslationStatusController
does not extendTYPO3\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
.