Variables in italics may be set in a script prior to the bootstrap process so they are optional.


To make the table below a bit more compact, namespaces were left out. Here are the fully qualified class names referred to below:

  • “SystemEnvironmentBuilder” = \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder
  • “Bootstrap” = \TYPO3\CMS\Core\Core\Bootstrap
  • “PackageManager” = \TYPO3\CMS\Core\Package\PackageManager
Global variable Defined in Description Avail. in FE
$GLOBALS[‘TYPO3_CONF_VARS’] typo3/sysext/core/Configuration/DefaultConfiguration.php TYPO3 configuration array. Please refer to file typo3/sysext/core/Configuration/DefaultConfigurationDescription.php where each option is described in detail in the comments. The same comments are also available in the Install Tool when you choose “All Configuration”. Yes
$GLOBALS[‘TYPO3_LOADED_EXT’] PackageManager::loadPackageManagerStatesFromCache() PackageManager::initializeCompatibilityLoadedExtArray() Array with all loaded extensions listed with a set of paths. You can check if an extension is loaded by the function \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded($key) where $key is the extension key. Yes
$GLOBALS[‘EXEC_TIME’] SystemEnvironmentBuilder::initializeGlobalTimeTrackingVariables()

Is set to time() so that the rest of the script has a common value for the script execution time.


Should not be used anymore, rather use the DateTime Aspect.

$GLOBALS[‘SIM_EXEC_TIME’] SystemEnvironmentBuilder::initializeGlobalTimeTrackingVariables()

Is set to $GLOBALS['EXEC_TIME'] but can be altered later in the script if we want to simulate another execution-time when selecting from e.g. a database (used in the frontend for preview of future and past dates)


Should not be used anymore, rather use the DateTime Aspect.

$GLOBALS[‘PAGES_TYPES’] typo3/sysext/core/ext_tables.php See Page Types (occasionally)
$GLOBALS[‘TCA’] Bootstrap::loadExtensionTables() See TCA Reference Yes, partly
$GLOBALS[‘TBE_MODULES’] typo3/sysext/core/ext_tables.php The backend main/sub-module structure. See section elsewhere plus source code of class \TYPO3\CMS\Backend\Module\ModuleLoader which also includes some examples. (occasionally)
$GLOBALS[‘TBE_STYLES’] typo3/sysext/core/ext_tables.php Contains information related to BE skinning. (occasionally)
$GLOBALS[‘T3_SERVICES’] SystemEnvironmentBuilder::initializeGlobalVariables() Global registration of services. Yes
$GLOBALS[‘T3_VAR’] SystemEnvironmentBuilder::initializeGlobalVariables()

Space for various internal global data storage in TYPO3. Each key in this array is a data space for an application. Keys currently defined for use is:

[‘callUserFunction’] + [‘callUserFunction_classPool’]: Used by \TYPO3\CMS\Core\Utility\GeneralUtility::callUserFunction to store singleton objects.

[‘RTEobj’] : Used to hold the current RTE object if any. See \TYPO3\CMS\Backend\Utility\BackendUtility.

[‘ext’][ extension-key ] : Free space for extensions.

$GLOBALS[‘BE_USER’] Bootstrap::initializeBackendUser() Backend user object. See Backend User Object. (depends)
$GLOBALS[‘TBE_MODULES_EXT’] [In ext_tables.php files of extensions] Used to store information about modules from extensions that should be included in “function menus” of real modules. See the Extension API for details. (occasionally)
$GLOBALS[‘TCA_DESCR’] [tables.php files] Can be set to contain file references to local lang files containing TCA_DESCR labels. See section about Context Sensitive Help. No

Exploring Global Variables

Many of the global variables described above can be inspected using the ADMIN TOOLS > Configuration module.


This module is always viewed in the BE context. Variables defined only in the FE context will not be visible there.


This module is purely a browser. It does not let you change values.

It also lets you browse a number of other global arrays. Just be curious and investigate!

The Configuration module in **ADMIN TOOLS**

Viewing the $GLOBALS['TYPO3_CONF_VARS] array using the ADMIN TOOLS > Configuration module