Attention

TYPO3 v8 has reached its end-of-life March 31st, 2020 and is not maintained by the community anymore.

You can order Extended Long Term Support (ELTS) here: TYPO3 ELTS.

Global variables

Note

Variables in italics may be set in a script prior to the bootstrap process 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

  • "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

$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

$TYPO3_DB

Bootstrap::initializeTypo3DbGlobal()

An instance of the TYPO3 DB wrapper class, \TYPO3\CMS\Core\Database\DatabaseConnection. Formerly (before 8.2) this object had to be used for all interaction with the database.

Attention

You should NOT use this anymore. Use Doctrine instead!

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

$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. (will be removed on CMS 9)

(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

$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