Attention
TYPO3 v9 has reached its end-of-life September 30th, 2021 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.
You can order Extended Long Term Support (ELTS) here: TYPO3 ELTS.
Declaration File (ext_emconf.php)¶
The ext_emconf.php
is the single most important file in an extension.
Without it, the Extension Manager (EM) will not detect the extension, much less
be able to install it. This file contains a declaration of what the extension
is or does for the EM. The only thing included
is an associative array, $EM_CONF[extension key]
.
The keys are described in the table below.
This file is overwritten, when extensions are imported from the online repository. So don't write your custom code in this file - only change
values in the $EM_CONF
array if needed.
<?php
$EM_CONF[$_EXTKEY] = [
'title' => 'Extension title',
'description' => 'Extension description',
'category' => 'plugin',
'author' => 'John Doe',
'author_email' => 'john.doe@example.org',
'author_company' => 'some company',
'state' => 'stable',
'createDirs' => '',
'clearCacheOnLoad' => 0,
'version' => '1.0.0',
'constraints' => [
'depends' => [
'typo3' => '11.0.0-11.99.99',
],
'conflicts' => [
],
'suggests' => [
],
],
];
$_EXTKEY is set globally and contains the extension key.
Important
Due to limitations to the TER (TYPO3 Extension Repository),
$_EXTKEY
should be used here and not a constant or a string.
Do not use defined('TYPO3') or die();
in this file.
Key |
Data type |
Description |
---|---|---|
title |
string, required |
The name of the extension in English. |
description |
string, required |
Short and precise description in English of what the extension does and for whom it might be useful. |
version |
string |
Version of the extension. Automatically managed by EM / TER. Format is [int].[int].[int] |
category |
string |
Which category the extension belongs to:
|
constraints |
array |
List of requirements, suggestions or conflicts with other extensions or TYPO3 or PHP version. Here's how a typical setup might look: 'constraints' => array(
'depends' => array(
'typo3' => '4.5.0-6.1.99',
'php' => '5.3.0-5.5.99'
),
'conflicts' => array(
'dam' => ''
),
'suggests' => array(
'tt_news' => '2.5.0-0.0.0'
)
)
The above example indicated that the extension depends on a
version of TYPO3 between 4.5 and 6.1 (as only bug and security fixes are
integrated into TYPO3 when the last digit of the version changes, it is
safe to assume it will be compatible with any upcoming version of the
corresponding branch, thus |
state |
string |
Which state is the extension in
|
uploadfolder |
boolean |
If set, then the folder named "uploads/tx_[extKey-with-no- underscore]" should be present! |
createDirs |
list of strings |
Comma list of directories to create upon extension installation. |
clearCacheOnLoad |
boolean |
If set, the EM will request the cache to be cleared when this extension is loaded. |
author |
string |
Author name |
author_email |
email address |
Author email address |
author_company |
string |
Author company |
autoload |
array |
To get better class loading support for websites in non-composer mode+ the following information can be provided. Extensions having one folder with classes or single files Considering you have an Extbase extension (or an extension where all classes
and interfaces reside in a 'autoload' => [
'classmap' => [
'Classes',
'a-class.php',
]
],
Extensions using namespaces If the extension has namespaced classes following the PSR-4 standard, then you
can add the following to your 'autoload' => [
'psr-4' => [
'Vendor\\ExtName\\' => 'Classes'
]
],
// Important: The prefix must end with a backslash. |
autoload-dev |
array |
Same as the configuration "autoload" but it is only used if the ApplicationContext is set to Testing. |
Deprecated Configuration¶
The following fields are deprecated and should not be used anymore:
dependencies
conflicts
suggests
docPath
CGLcompliance
CGLcompliance_note
private
download_password
shy
loadOrder
priority
internal
modify_tables
module
lockType
TYPO3_version
PHP_version
uploadfolder
createDirs