.. include:: /Includes.rst.txt
.. _installing-extensions:
=====================
Installing extensions
=====================
Both system extensions and third-party extensions are managed using Composer. Composer handles
the installation of the extension and also installs any dependencies that may be
required. Composer is also used to uninstall extensions.
.. _install-extension-with-composer:
Find the Composer package name for an extension
-----------------------------------------------
Visit the `Extension Repository `__,
and search for the extension.
On the extension page , under :guilabel:`"Composer support"`,
will be the Composer command required to install that extension.
For example, the extension :t3ext:`news`
has the package name :composer:`georgringer/news`.
Typically the package name will be vendor + slash + extension key.
However, if the extension key contains an underscore, it is replaced
with a dash in the package name. For example:
:t3ext:`extension_builder`:
extension key
`extension_builder`
vendor
`friendsoftypo3`
Composer package name
:composer:`friendsoftypo3/extension-builder`
Use :bash:`composer require` to install the extension
-----------------------------------------------------
.. code-block:: bash
:caption: /var/www/site/$
composer require
To install the news extension:
.. code-block:: bash
:caption: /var/www/site/$
composer require georgringer/news
This will add the extension requirement to the installations :file:`composer.json`
and install the extension.
Whilst the extension is installed and activated automatically, it still needs to be set up before it can be used:
Setup the extension
-------------------
.. code-block:: bash
:caption: /var/www/site/$
./vendor/bin/typo3 extension:setup
The extension setup command takes care of executing additional installation procedures, such as database migrations and
clearing caches if necessary. The extension setup command is not specific to a single extension but instead looks at the overall
state and executes all necessary steps.
Uninstalling extensions
=======================
The composer command `remove` uninstalls an extension.
.. code-block:: bash
:caption: /var/www/site/$
composer remove georgringer/news
The updated :file:`composer.lock` file needs to be committed to the version
control system.
.. _install_local_extensions_using_composer:
Installing local extensions
===========================
Local extensions including sitepackages and custom extensions also need to be
installed using Composer.
Custom extensions should be placed in a dedicated, local directory: `documentroot/packages`.
Once this directory exists, update the installations `composer.json` and add this directory
as a new repository:
.. code-block:: bash
:caption: /var/www/site/composer.json
{
"repositories": [
{
"type": "path",
"url": "./packages/*/"
},
],
}
Then run `composer require` to the install the local extension `my-local-extension` with vendor `vendor`:
.. code-block:: bash
:caption: /var/www/site/$
composer require vendor/my-local-extension:@dev
By executing this command, Composer locates `vendor/my-local-extension` and then symlinks
it to `typo3conf/ext/my-local-extension` once `composer install` is executed.
The setup from above defines that the extension is to be placed by composer into the folder `:file:packages/my-local-extension`
if it has not been already there.
Additional information
======================
.. _find-out-extension-key:
Find out the extension key for an extension
-------------------------------------------
The extension key of an extension can be found in its :file:`composer.json`.
.. code-block:: json
:caption: EXT:blog_example/composer.json
:emphasize-lines: 7
{
"name": "t3docs/blog-example",
"type": "typo3-cms-extension",
"..": "...",
"extra": {
"typo3/cms": {
"extension-key": "blog_example",
}
}
}
Before installing an extension, the extension key can be found on its page in the
`TYPO3 Extension Repository (TER) `__.
The extension key is listed on the top. For the extension
:t3ext:`news`, the extension key is `news`.