Attention
TYPO3 v10 has reached end-of-life as of April 30th 2023 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v10 here: TYPO3 ELTS.
Extension Configuration (ext_conf_template.txt)¶
-- optional
In the ext_conf_template.txt
file, the configuration options
for an extension can be defined and set with default values.
These configuration options are accessible via the TYPO3 backend and can be overwritten
in Admin Tools -> Settings -> Extension Configuration.
Syntax¶
There's a specific syntax to declare these options properly, which is similar to the one used for TypoScript constants (see "Declaring constants for the Constant editor" in Constants section in TypoScript Reference. This syntax applies to the comment line that should be placed just before the constant. Consider the following example (taken from system extension "backend"):
# cat=Login; type=string; label=Logo: If set, this logo will be used instead of...
loginLogo =
First a category (cat) is defined ("Login"). Then a type is given ("string") and finally a label, which is itself split (on the colon ":") into a title and a description (this should actually be a localized string). The above example will be rendered like this in the Settings module:

The configuration tab displays all options from a single category. A selector is available to switch between categories. Inside an option screen, options are grouped by subcategory. At the bottom of the screenshot, the label – split between header and description – is visible. Then comes the field itself, in this case an input, because the option's type is "string".
Available option types¶
Option type |
Description |
---|---|
boolean |
checkbox |
color |
colorpicker |
int |
integer value |
int+ |
positive integer value |
integer |
integer value |
offset |
offset |
options |
option select |
small |
small text field |
string |
text field |
user |
user function |
wrap |
wrap field |
Option select can be used as follows:
# cat=basic/enable/050; type=options[label1=value1,label2]; label=MyLabel
myVariable = 1
Where user functions have to be written the following way:
# cat=basic/enable/050; type=user[Vendor\MyExtensionKey\ViewHelpers\MyConfigurationClass->render]; label=MyLabel
myVariable = 1
Accessing saved options¶
When saved in the Settings module, the configuration will be kept in the LocalConfiguration.php
file and is available as array $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['your_extension_key']
.
To retrieve the configuration use the API provided by the \TYPO3\CMS\Core\Configuration\ExtensionConfiguration
class:
$extensionConfiguration = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(ExtensionConfiguration::class)
->get('your_extension_key');
This will return the whole configuration as an array.
To directly fetch specific values like temporaryDirectory
from the example above:
$temporaryDirectory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(ExtensionConfiguration::class)
->get('your_extension_key', 'temporaryDirectory');
Nested structure¶
You can also define nested options using the TypoScript notation:
directories {
# cat=basic/enable; type=string; label=Path to the temporary directory
tmp =
# cat=basic/enable; type=string; label=Path to the cache directory
cache =
}
This will result in a multidimensional array:
$extensionConfiguration['directories']['tmp']
$extensionConfiguration['directories']['cache']