Global variables

Note

Variables in italics may be set in a script prior to inclusion of init.php so they are optional.

Note

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
Global variable Defined in Description Avail. in FE
$TYPO3_CONF_VARS typo3/sysext/core/Configuration/DefaultConfiguration.php TYPO3 configuration array. Please refer to mentioned file where each option is described in detail as comments. The same comments are also available in the Install Tool under the menu “All Configuration”. Yes
$TYPO3_LOADED_EXT Bootstrap::populateTypo3LoadedExtGlobal() 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
$TYPO3_DB Bootstrap::initializeTypo3DbGlobal()

An instance of the TYPO3 DB wrapper class, \TYPO3\CMS\Core\Database\DatabaseConnection.

You have to use this object for all interaction with the database.

\TYPO3\CMS\Core\Database\DatabaseConnection contains MySQL wrapper functions so you easily swap all hardcoded MySQL calls with function calls to $GLOBALS['TYPO3_DB']->.

Yes
$EXEC_TIME SystemEnvironmentBuilder::initializeGlobalTimeTrackingVariables() Is set to time() so that the rest of the script has a common value for the script execution time. YES
$SIM_EXEC_TIME SystemEnvironmentBuilder::initializeGlobalTimeTrackingVariables() Is set to $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) Yes
$PARSETIME_START SystemEnvironmentBuilder::initializeGlobalTimeTrackingVariables() Time in milliseconds right after inclusion of the configuration. No
$TYPO3_AJAX ajax.php Set to true to indicate that an AJAX call is being processed No
$PAGES_TYPES typo3/sysext/core/ext_tables.php See Page types (occasionally)
$TCA Bootstrap::loadExtensionTables() See TCA Reference Yes, partly
$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)
$TBE_STYLES typo3/sysext/core/ext_tables.php Contains information related to BE skinning. (occasionally)
$T3_SERVICES SystemEnvironmentBuilder::initializeGlobalVariables() Global registration of services. Yes
$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.

[‘getUserObj’] : Used by \TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj 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.

Yes
$FILEMOUNTS Bootstrap::initializeBackendUserMounts() Array of filepaths on the server to be mounted in the directory tree. (depends)
$BE_USER Bootstrap::initializeBackendUser() Backend user object. See Backend User Object. (depends)
$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)
$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.

Warning

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

The Configuration module in Admin Tools

Viewing the $TCA array using the Admin Tools > Configuration module