Attention
TYPO3 v8 has reached its end-of-life March 31st, 2020 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.
There is no further ELTS support. It is recommended that you upgrade your project and use a supported version of TYPO3.
System, Global and Local extensions¶
The files for an extension are located in a folder named by the
extension key . The location of this folder can be either inside
typo3/sysext/
, typo3/ext/
or typo3conf/ext/
.
The extension must be programmed so that it does automatically
detect where it is located and can work from all three locations. If
it is not possible to make the extension that flexible, it is possible
to lock its installation requirement to one of these locations in the
ext_emconf.php
file (see "lockType").
Local extensions¶
Local extensions are located in the typo3conf/ext/
directory.
This is where to put extensions which are local for a particular
TYPO3 installation. The typo3conf
directory is always local, containing
local configuration (e.g. LocalConfiguration.php
), local modules etc.
If you put an extension here it will be available for a single TYPO3
installation only. This is a "per-database" way to install an
extension.
Note
Local extension can successfully be symlinked to other local extensions on a server as long as they are running under the same TYPO3 source version (which would typically also be symlinked). This method is useful for maintenance of the same local extension running under several sites on a server.
Global extensions¶
Global extensions are located in the typo3/ext/
directory.
This is a "per-server" way to install an extension; they are global for the TYPO3 source code on the web server. These extensions will be available for any TYPO3 installation sharing the source code.
Note
This features has not been consistently supported in recent versions of TYPO3, so you may encounter problems when using it.
System extensions¶
System extensions are located in the typo3/sysext/
directory.
This is system default extensions which cannot and should not be updated by the EM. They are distributed with TYPO3 core source code and generally understood to be a part of the core system.
Loading precedence¶
Local extensions take precedence which means that if an extension
exists both in typo3conf/ext/
and typo3/ext/
the one in typo3conf/ext/
is loaded. Likewise global extension takes precedence over
system extensions. This means that extensions are loaded in the
order of priority local-global-system.
In effect you can therefore have - say - a "stable" version of an extension installed in the global dir (typo3/ext/) which is used by all your projects on a server sharing source code, but on a single experimental project you can import the same extension in a newer "experimental" version and for that particular project the locally available extension will be used instead.