---
title: "Extension management"
manual: "TYPO3 Explained"
version: "11.5"
permalink: "https://docs.typo3.org/permalink/t3coreapi:extension-manager@11.5"
source: "ExtensionArchitecture/HowTo/ExtensionManagement.rst"
rendered: "2026-10-21T15:30:00+00:00"
---

> [!WARNING]
> **Attention**
>
> TYPO3 v11 has reached end-of-life as of October 31th 2024 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 v11 here:
> [TYPO3 ELTS](https://typo3.com/services/extended-support-elts).

# Extension management {#extension-manager}

Extensions are managed from the Extension Manager inside TYPO3 by
"admin" users. The module is located at **Admin Tools > Extensions**
and offers a menu with options to see loaded extensions (those that
are installed or activated), available extensions on the server and
the possibility to import extensions from online resources, typically
the TER (TYPO3 Extension Repository) located at typo3.org.

![](../../Images/AutomaticScreenshots/AdminTools/ExtensionManager.png)

The interface is really easy to use. You just click the +/- icon to
the left of an extension in order to install it and follow the
instructions.

<a id="extension-package-manager"></a>

## Installing extensions {#extension-install}

There are only two (possibly three) steps involved in using extensions with TYPO3:

1.  You must *import* it.

    This simply means to copy the extensions files into the correct directory into.
    More commonly you import an extension directly from the online TYPO3 Extension Repository (TER)
    using the Extension Manager. When an extension is found located in one of the extension locations,
    it is  *available* to the system.

    The Extension Manager (EM) should take care of this process, including updates to
    newer versions if needed.

    Another convenient way to install extensions is offered by using Composer ([https://getcomposer.org/](https://getcomposer.org/))
    along with the TYPO3 Composer Repository ([https://composer.typo3.org/](https://composer.typo3.org/)). The TYPO3 Composer Repository
    includes all TYPO3 extensions that are uploaded to TER.
1.  You must *load* it.

    In [legacy installations not based on Composer](https://docs.typo3.org/m/typo3/tutorial-getting-started/11.5/en-us/Installation/LegacyInstallation.html#legacyinstallation)
    an extension is loaded only if it is listed in the
    `PackageStates.php` file. Extensions are loaded in the order they appear in this list.
    In [Composer installations](https://docs.typo3.org/m/typo3/tutorial-getting-started/11.5/en-us/Installation/Install.html#install), all extensions in the
    `composer.json` are considered as active.

    An enabled extension is always global to the TYPO3 Installation - you cannot disable
    an extension from being loaded in a particular branch of the page tree. The EM takes
    care of enabling extensions. It's highly recommended that the EM is doing
    this, because the EM will make sure the priorities, dependencies and
    conflicts are managed according to the extension characteristics,
    including clearing of the cache-files if any.
1.  You *might* be able to configure it.

    Certain extensions may allow you to configure some settings.
    **Admin Tools > Settings > Extension configuration**
    provides an interface to configure extensions that provide configuration settings. Any
    settings - if present - configured for an extension are available as
    an array in the variable `$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS'][extensionKey]` and
    thus reside in `typo3conf/LocalConfiguration.php`.

Loaded extensions can be fetched with `\TYPO3\CMS\Core\Package\PackageManager::getActivePackages()`,
available in both frontend and backend of TYPO3.

This will return an array of `\TYPO3\CMS\Core\Package\Package` objects,
containing the data structure for each extension. These include the properties:

| Key | Description |
| --- | --- |
| packageKey | The package key (or extension key). |
| packagePath | Path to the package. Can be used to determine, if the extension is local or global scope. |
| composerManifest | A large array containing the composer manifest. (the `composer.json` of the extension, if it exists) |
| packageMetaData | Properties of the `ext_emconf.php` configuration of the extension, like its constraints (depends, suggests, conflicts), version, title, description, …, |

The order of the registered extensions in this array corresponds to
the order they were listed in `PackageStates.php` in legacy installations.
