.. include:: ../../Includes.txt ===================================================== Deprecation: #89463 - `Switchable Controller Actions` ===================================================== See :issue:`89463` Description =========== `Switchable controller actions` have been marked as deprecated and will be removed in one of the next major versions of TYPO3, probably version 11.0 or 12.0. :ts:`Switchable controller actions` are used to override the allowed set of controllers and actions via TypoScript or plugin flexforms. While this is convenient for reusing the same plugin for a lot of different use cases, it's also very problematic as it completely overrides the original configuration defined via :php:`\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin`. :ts:`Switchable controller actions` therefore have bad implications that rectify their removal. First of all, :ts:`switchable controller actions` override the original configuration of plugins at runtime and possibly depending on conditions which contradicts the idea of :php:`\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin` being the authoritative way to define configuration. Using the same plugin as an entry point for many different functionalities contradicts the idea of a plugin serving one specific purpose. :ts:`Switchable controller actions` allow for creating one central plugin that takes care of everything. Impact ====== All plugins that are using :ts:`switchable controller actions` need to be split into multiple different plugins. Usually, one would create a new plugin for each possible :ts:`switchable controller actions` configuration entry. Affected Installations ====================== All installations that make use of :ts:`switchable controller actions`, either via flexform configuration of plugins or via TypoScript configuration. Migration ========= Unfortunately, an automatic migration is not possible. As :ts:`switchable controller actions` allowed to override the whole configuration of allowed controllers and actions, the only way to migrate is to create dedicated plugins for each former :ts:`switchable controller actions` configuration entry. Example: .. code-block:: xml selectSingle List Product->list Show Product->show This configuration would lead to the creation configuration of two different plugins like this: .. code-block:: php \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'extension', 'list', [ 'Product' => 'list' ] ); \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'extension', 'show', [ 'Product' => 'show' ] ); .. index:: FlexForm, PHP-API, TypoScript, NotScanned, ext:extbase