---
title: "TYPO3 Composer: Efficient Management of Core & Extensions"
url: "https://nitsantech.de/en/blog/typo3-composer"
description: "Install TYPO3 with Composer Repository: Check prerequisites, configure composer.json, manage extensions, and update versions."
image: "https://nitsantech.de/fileadmin/_processed_/c/4/csm_step-by-step-guide-to-composer_9ec55dcf4b.jpg"
author: Sanjay Chauhan - TYPO3 Technopreneur
date: 2019-10-04
modified: 2025-10-03
lastUpdated: 2026-02-26
keywords:
  - TYPO3 Composer
  - TYPO3 composer repository
  - "TYPO3 Core &amp; Extensions"
  - install TYPO3 Composer
categories:
  - Upgrade
---

# TYPO3 Composer: Efficient Management of Core & Extensions

How to Install TYPO3 Composer: Step-by-Step Guide
=================================================

 30 Nov 2024

 [![](https://nitsantech.de/fileadmin/ns_theme_nitsan/About_Us_De/About_Us/Mihaela..jpg)](https://nitsantech.de/en/blog/author/mihaela-angelova)

 [Mihaela Angelova](https://nitsantech.de/en/blog/author/mihaela-angelova)

 [ Upgrade ](https://nitsantech.de/en/categories/upgrade)

TYPO3 is able to run in composer mode. It's fast, it's good for deployment and has a web folder. This post explains what it takes to get your composer up and running.

 ![How to Install TYPO3 Composer: Step-by-Step Guide](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/_live/Simple_Steps_to_Configure_CKEditor_in_TYPO3/Step_by_step_guide_to_TYPO3_Composer.jpg)

   Table of content

 <a id="c19157"></a>Are you still working the old-fashioned way - using the classic method to set up [TYPO3](https://nitsantech.de/en/blog/typo3) and its extensions on classic hosting - instead of simply performing a modern TYPO3 installation? When starting a new TYPO3 project, a [**TYPO3 agency**](https://nitsantech.de/en/typo3-agency) would approach it differently. How do you go about it?

Go to typo3.org, download the latest package (TYPO3 core and extensions), unzip it, copy the folder to your server directory, install it, run it, configure it, etc. Whew - that's way too time-consuming and inefficient for a simple TYPO3 installation. And then there are the following questions:

- What about the version dependency of TYPO3 Core & Extensions?
- What if you want to install many TYPO3 extensions? Then you need to constantly check the dependency of, download, install, configure and so on.
- How to update TYPO3 core and many TYPO3 extensions - Again, A long journey of checking dependencies, downloading, installing/updating etc etc etc....the list is long!!!

There is a way to overcome this poor workflow, especially in TYPO3 installation, and improve the typo3 version . Let us introduce you: **The Composer**. All you need to do is to apply some commands to the terminal, which makes the process much easier.

 <a id="c19158"></a>Composer - The dependency manager for PHP. Have you ever heard of <https://getcomposer.org/>? Composer is a tool for managing dependencies in PHP, and it is important to note the php version. It allows you to specify the libraries, including php 8.0, that your project depends on and it manages (installs/updates) them for you.

 <a id="c19159"></a>- OS: Linux/Unix/OSX/Windows
- Version: **PHP 5.3.2 +**
- PHP settings: Some sensitive PHP settings and compilation flags are also required.
- Versioning system: git, svn, fossil or hg, depending on how the package is version controlled.

### How to set up Composer?

Install and configure Composer with the following steps - as a practical guide:

#### **Step 1: Install Composer**

Download and install Composer by following the instructions at <https://getcomposer.org/download/> - with the help of online resources.

#### **Step 2: Define composer.json**

Create a composer.json file that defines your dependencies and describes the content of your project structure. Note that this example is only a short version for extension applications that are not to be published as a package and are specifically suitable for the current TYPO3 version, and use the typo3 composer for administration. The system extensions and also from the extension repository. To create libraries/packages, please read the documentation.

{
 "require":{
 "monolog/monolog": ">=1.0.0"
 }
}

#### **Step 3: Run**

Execute the composer command to start the installation. To do this, use: php composer.phar install

#### **Step 4: Browse**

Browse more packages on Packagist or look for support in the online community forums.

For more details such as the global installation of Composer, the composer version, updating Composer and more, visit [getcomposer.org/doc/00-intro.md](https://getcomposer.org/doc/00-intro.md)

 <a id="c19160"></a>getcomposer.org is a Composer repository that allows you to install the TYPO3 core and extensions including the dependencies on the Composer, as well as use the TYPO3 extension repository. Search for available TYPO3 extension packages at [https://composer.typo3.org/](https://get.typo3.org/misc/composer/repository) satis. html

 <a id="c19161"></a>We will show you how to quickly use Composer to efficiently build your [TYPO3 website](https://nitsantech.de/en/blog/typo3-website) and optimize the hosting package based on this guide. You can download the TYPO3 Core - Base Distribution with the following steps:

#### Step 1: Download the TYPO3 CMS base distribution

The current "Stable" version (e.g. 7.6):

Command: composer create-project typo3/cms-base-distribution CmsBaseDistribution

The "Dev" branch (e.g. version 8.1):

Command: composer create-project typo3/cms-base-distribution CmsBaseDistribution dev-master

The "dev" branch for TYPO3 7.6:

Command: composer create-project typo3/cms-base-distribution CmsBaseDistribution 7.6.x-dev

#### Step 2: Add additional TYPO3 packages/extensions

Now we add TYPO3 extensions using Composer - with the right command. The commands must be executed in the "CmsBaseDistribution" directory.

\# Add a CMS extension into typo3conf/ext.
composer require typo3-ter/news
-> if asked for a version constraint, answer with \*.
\# Add a package from outside the CMS world into Packages/Libraries
\# Notice: Packages/Libraries/autoload.php will need to be included in your code.
composer require monolog/monolog
\# Personalize your composer.json file to your needs.
edit composer.json

Using Composer to install TYPO3 is quite simple. All you need to do is include the custom composer repository in your **composer.json**. Once you have done this, you can request the core and/or extensions with the current composer version, the usual composer versioning format, which provides comprehensive composer support. In the following example, you will always receive the current 7.6.x core of TYPO3, the current [TYPO3 version](https://nitsantech.de/en/blog/typo3-roadmap) and the news. (including possible dependencies!).

**Note:** *Replace underscores ("\_") with hyphens ("-") in the extension key. For example, the extension "tt\_products" is written as "tt-products" in the composer.json.*

{
"repositories": \[
 {"type":
 "composer",
 "url": "https://composer.typo3.org/"
 }
\],
"require": {
 "typo3/cms": "^7.6.9",
 "typo3-ter/news": "^3.2.5"
 },
 "extra": {
 "typo3/cms": {
 "cms-package-dir": "{$vendor-dir}/typo3/cms",
 "web-dir": "web"
 }
 }
}

Do you have your own **customized TYPO3 extension** that may need system extensions? It is recommended to add your own composer.json file to your extension to be on the safe side and follow detailed instructions as TYPO3 will rely more and more on Composer and admin tools to handle dependencies. The file must be located in the root directory of your extension and should be structured as follows:

{
 "name": "vendor-name/my-ext-key",
 "type": "typo3-cms-extension",
 "description": "Write down your description of extension",
 "homepage": "https://yoursite.com",
 "license": \["GPL-2.0+"\],
 "keywords": \["TYPO3 CMS", "keyword1 keyword2"\],
 "support": {
 "issues": "https://forge.typo3.org/projects/extension-my\_ext\_key"
 },
 "require": {
 "typo3/cms-core": "^6.2.14 || ^7.6.0"
 },
 "autoload": {
 "psr-4": {
 "VendorName\\\\MyExtKey\\\\": "Classes/"
 }
 },
 "replace": {
 "my\_ext\_key": "self.version",
 "typo3-ter/my-ext-key": "self.version"
 }
}

The vendor name must be one of yours, especially if you are accessing via SSH. It must not be "typo3", which is reserved for core extensions. In the TYPO3 wiki, there are some notes on conventions regarding namespaces, which are a great advantage for developers.

 <a id="c19162"></a> ```

{
 "repositories": [
	 {
	 	"type": "composer",
	 	"url": "https://composer.typo3.org/"
	 }
 ],

 "name": "NITSAN/composer-example",
 "description" : "TYPO3 Core & News extensions example composer.json.",
 "license": "GPL-2.0+",
 "require": {
	 	"typo3/cms": "^7.6",
	 	"typo3-ter/news": "^4.0"
 },
 "extra": {
	"typo3/cms": {
		"cms-package-dir": "{$vendor-dir}/typo3/cms",
		"web-dir": "web"
	}
 }
 "replace": {
 	"ext_news": "self.version",
 	"typo3-ter/ext-news": "self.version"
 },
 "autoload": {
	"psr-4": {
		"GeorgRinger\\ExtNews\\": "Classes"
	}
 },
}
```

 <a id="c19163"></a>- [http://Getcomposer.org](https://getcomposer.org/ "Opens internal link in current window")
- [http://Composer.typo3.org](https://get.typo3.org/misc/composer/repository "Opens internal link in current window")
- [https://usetypo3.com/typo3-and-composer.html](https://usetypo3.com/typo3-and-composer/ "Opens internal link in current window")
- [http://insight.helhum.io/post/130812561790/changes-in-class-loading-in-typo3-7lts](https://insight.helhum.io/post/130812561790/changes-in-class-loading-in-typo3-7lts "Opens internal link in current window")
- [https://typo3.slack.com/messages/typo3-cms-composer/](https://typo3.slack.com/messages/typo3-cms-composer/ "Opens internal link in current window")
- [http://insight.helhum.io/post/130876393595/how-to-configure-class-loading-for-extensions-in](https://insight.helhum.io/post/130876393595/how-to-configure-class-loading-for-extensions-in "Opens internal link in current window")

*Use Composer to create fast and intelligent TYPO3 projects.*

 <a id="c23278"></a>  ![](data:,)

A Structured Start for TYPO3 Projects
-------------------------------------

Use this guide to avoid common mistakes and lay a solid foundation for your TYPO3 project from the beginning.

 [ Download guide ](https://nitsantech.de/javascript:;)

 <a id="c23245"></a>

 <a id="c20286"></a>

 ![Mihaela](/fileadmin/ns_theme_nitsan/About_Us_De/About_Us/Mihaela-Angelova.png "Mihaela")

#### Contact for project management and team coordination

#### Mihaela Angelova

Project Manager - Germany

 [ mihaela@nitsantech.de ](mailto:mihaela@nitsantech.de) [ +49 30 914 555 10 ](tel:493091455510)

![](https://nitsantech.de/fileadmin/ns_theme_nitsan/About_Us_De/About_Us/Mihaela..jpg)

### Mihaela Angelova

Project Manager

- [](https://www.linkedin.com/in/mihaela-n-angelova/ "linkedin")

Mihaela keeps technology projects on track and ensures to meet business goals. She specializes in coordinating teams, optimizing workflows, and delivering projects. At NITSAN, she works closely with clients to transform ideas into actionable solutions. Outside of work, she enjoys exploring new hiking trails.

  <a id="c9786"></a>Comments and Responses
----------------------

 Thank you for your comment. Your Comment Added Successfully.

Thank you for your comment. Your Comment Will Be Visible After Approval.

Oops! Something went wrong, please try again later.

##### **Be the First to Comment**

  <a id="c9787"></a> ### Related Blogs

 [ ![](https://nitsantech.de/data:,)

#### TYPO3 v13 Upgrade Checklist: What to Prepare Before You Start

 ](https://nitsantech.de/en/blog/typo3-v13-upgrade-checklist)

 [ ![](https://nitsantech.de/data:,)

#### TYPO3 Update 13: What Does This Mean for Agencies?

 ](https://nitsantech.de/en/blog/typo3-13-update-for-agencies)