Deprecation: #99579 - BackendUtility::getFuncCheck()

See forge#99579

Description

Method \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncCheck() has been marked as deprecated and should not be used any longer.

Impact

Calling the method will raise a deprecation level log error and will stop working with TYPO3 v13.

Affected installations

The method may be used in extensions that add backend modules. The extension scanner finds usages with a strong match.

Migration

BackendUtility::getFuncCheck() is a helper method that renders a select drop down and is typically used to trigger a GET request when the user selects an option.

In general, such HTML should not be generated by PHP, but by Fluid templating. The method is thus typically used by old school backend modules that have not or only partially been transferred to Fluid, improving the controller-view separation.

The most simple and ugly migration is to copy the method to an own controller that consumes the method. The better solution is to add the arguments as variables to the Fluid template and render the drop down in Fluid. This should be a pretty straight transition as well and typically avoids another <f:format.raw> ViewHelper usage.

Note that requests send by these drop downs should switch from GET to POST in case they change server state (eg. changing records) along the way: State changing requests should be restricted to POST as an additional security measure, and to not violate the HTTP protocol. The TYPO3 core comes with more and more examples on how to handle this properly. For instance all drop downs and checkbox toggles of the tstemplate extension (Web->TypoScript backend module) have been changed to do this and can be studied on how to trigger immediate POST actions when clicking such elements.