ext_tables.php (Deprecated) 

Deprecated since version 14.3

Using the ext_tables.php file in extensions is deprecated.

ext_tables.php

ext_tables.php
Scope
extension
Path (Composer)
packages/my_extension/ext_tables.php
Path (Classic)
typo3conf/ext/my_extension/ext_tables.php

This file is deprecated. It was historically used to register backend modules, page doktypes, user settings, and other runtime configuration. All of these use cases now have dedicated alternatives in modern TYPO3.

Migration: Move registrations from ext_tables.php 

Move all registrations from ext_tables.php to the appropriate configuration files.

User settings:

User settings previously registered via ExtensionManagementUtility::addFieldsToUserSettings() in ext_tables.php should now be added via ExtensionManagementUtility::addUserSetting() in Configuration/TCA/Overrides/be_users.php.

Before:

ext_tables.php
$GLOBALS['TYPO3_USER_SETTINGS']['columns']['myCustomSetting'] = [
    'type' => 'check',
    'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang.xlf:myCustomSetting',
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToUserSettings(
    'myCustomSetting',
    'after:emailMeAtLogin'
);
Copied!

After:

Configuration/TCA/Overrides/be_users.php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserSetting(
    'myCustomSetting',
    [
        'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang.xlf:myCustomSetting',
        'config' => [
            'type' => 'check',
            'renderType' => 'checkboxToggle',
        ],
    ],
    'after:emailMeAtLogin'
);
Copied!
Page type allowed record types:

Page doktypes previously registered via PageDoktypeRegistry->add() in ext_tables.php should now use the TCA option allowedRecordTypes in Configuration/TCA/Overrides/pages.php.

Before:

ext_tables.php
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
    \TYPO3\CMS\Core\DataHandling\PageDoktypeRegistry::class
)->add(116, [
    'allowedTables' => ['tt_content', 'my_custom_record'],
]);
Copied!

After:

Configuration/TCA/Overrides/pages.php
$GLOBALS['TCA']['pages']['types']['116']['allowedRecordTypes'] = [
    'tt_content',
    'my_custom_record',
];
Copied!

Once all registrations have been moved and TYPO3 V13 support is dropped, the ext_tables.php file can be removed from the extension.