---
title: "TYPO3 Erweiterungen mit Composer, Git & Packagist im TER veröffentlichen"
url: "https://nitsantech.de/blog/publish-and-maintain-your-ter-typo3-extensions-with-composer-git-packagist"
description: Lerne, wie du TYPO3 Erweiterungen mit Composer, Git und Packagist im TER veröffentlichst und pflegst. Eine Schritt-für-Schritt-Anleitung für Entwickler.
image: "https://nitsantech.de/fileadmin/_processed_/c/1/csm_Publish-and-Maintain-your-TER-Typo3-Extension-with-Composer_git_packagist_v_06d4a8d7b9.jpg"
author: Sanjay Chauhan - TYPO3 Technopreneur
date: 2019-08-01
modified: 2025-11-07
lastUpdated: 2026-02-25
keywords:
  - TYPO3 CMS
  - TYPO3 extension
  - T3 extension
  - TER
  - TYPO3 plugin
  - Git
  - Packagist
  - extension manager
  - nitsan
  - typo3 backend
  - composer
  - Autoload
categories:
  - Extensions
---

# TYPO3 Erweiterungen mit Composer, Git & Packagist im TER veröffentlichen

Veröffentlichen und Pflegen Sie Ihre TER TYPO3 Extensions mit Composer + Git + Packagist
========================================================================================

 01 Aug. 2019

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

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

 [ Extensions ](https://nitsantech.de/categories/extensions)

Sie entwickeln, veröffentlichen und pflegen TYPO3-Extensions bei TER und sind daran interessiert, die besten Praktiken und Standards für Ihre TYPO3-Extensions zu kennen? Dann sind Sie hier richtig. Lesen Sie weiter!

 ![Veröffentlichen und Pflegen Sie Ihre TER TYPO3 Extensions mit Composer + Git + Packagist](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/Publish-and-Maintain-your-TER-Typo3-Extension-with-Composer_git_packagist_v.jpg)

   Table of content

*Unser App Store heißt TER - und er ist kostenlos! ~* [*TYPO3 GmbH*](https://extensions.typo3.org/)

Gemäß dem aktuellen Trend der Produkt- und Erweiterungsentwicklung ist der Composer eine der beliebtesten Abhängigkeitstechniken in PHP Open Source, die Ihnen helfen wird, Ihre Erweiterung einfach zu entwickeln, zu veröffentlichen und zu warten.

Vorteile wie: Release-Management, genaue Abhängigkeiten, einfache Installation und Upgrades, etc,

Heutzutage werden die meisten OpenSource CMS und Frameworks als "ideales Modell" verwendet.

Möchten Sie, dass Ihre TYPO3 Extension einfach mit dem magischen Composer-Befehl installiert werden kann?

Keine Notwendigkeit, TER Website zu gehen, laden Sie die Erweiterung, installieren Sie von Extension Manager, usw., Schreiben Sie einfach Befehl zB,

composer require nitsan/ns-news-comments

Sobald Sie Ihre Erweiterung mit gut QA-Tests und Code-Review abgeschlossen haben. Richten Sie composer.json im Stammverzeichnis Ihrer Erweiterung ein.

Sie müssen die folgenden wichtigsten Dinge beachten:

- **Name:** Hersteller-Name/Erweiterungs-Name
- **Type:** typo3-cms-extension
- **Muss Voraussetzung sein:** Stellen Sie sicher, dass Sie genaue Abhängigkeiten Ihrer Extension definieren, z.B. [**TYPO3 CMS**](https://nitsantech.de/blog/typo3-perfect-cms-for-everyone) core, andere TER-Extensions, PHP-Versionsabhängigkeiten, etc,
- **Autoload:** Es ist sehr empfehlenswert, dies einzurichten, da Ihre Erweiterung auch ohne Composer-Modus laufen soll. VendorName\\\\ExtensionsName (Sie können die genauen Wörter aus Ihrer beliebigen Controller-Datei aus dem Ordner \\Controller\\ finden.

Beispiel composer.json unseres beliebten TYPO3 EXT:[ns\_news\_comments](https://extensions.typo3.org/extension/ns_news_comments/). Composer unter Schritt-für-Schritt-Anleitung zum [**TYPO3 Composer**](https://nitsantech.de/blog/typo3-composer) und der speziellen [**TYPO3 website**](https://nitsantech.de/blog/typo3-website).

 ```json
{
  "name": "nitsan/ns-news-comments",
  "type": "typo3-cms-extension",
  "description": "This extension allows user to post comment on particular news, reply to the comments. This extension is compatible only with News system Extension.",
  "homepage": "https://extensions.typo3.org/extension/ns_news_comments/",
  "license": "GPL-3.0+",
  "keywords": [
   "TYPO3 CMS",
   "News Comment"
  ],
  "support": {
   "issues": "https://github.com/nitsan-technologies/ns_news_comments/issues"
  },
  "require": {
	"typo3/cms-core": ">=6.2.0",
    "georgringer/news": ">=3.0.0"
  },
  "autoload": {
	"psr-4": {
	  "Nitsan\\NsNewsComments\\": "Classes/"
	}
   },
   "replace": {
	"ns_news_comments": "self.version",
	"nitsan/ns-news-comments": "self.version"
   },
   "extra": {
	"typo3/cms": {
	  "extension-key": "ns_news_comments"
	}
   }
}
```

Da Sie sich der Leistungsfähigkeit von Git bewusst sind, wählen Sie Ihre bevorzugte Git-Plattform wie Gitlab, Github, BitBucket, etc,

Wir bevorzugen Gitlab, aber seit langem pflegen wir unsere Erweiterung auf Github, so dass wir Ihnen einen Überblick darüber geben können.

### Initiieren Sie Ihr Git-Repository

**Schritt 1:** Registrieren Sie sich und melden Sie sich unter <https://github.com/> an.

**Schritt 2:** Sie erhalten Ihre persönliche Landing Page wie <https://github.com/nitsan-technologies>.

**Schritt 3:** Gehen Sie zu Dashboard > Registerkarte "Repositories" > Klicken Sie auf die Schaltfläche "Neu". Oder Sie können einfach hier <https://github.com/new> gehen, um ein neues Repository zu erstellen.

  ![[Translate to German:] Version your code with Git](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist_Git_repository.png "[Translate to German:] Version your code with Git")

**Schritt 4**: Erstellen Sie ein neues Repository, indem Sie die Details im Formular ausfüllen, und schon ist Ihr öffentliches Repository fertig.

Sie müssen die folgenden Felder ausfüllen:

- **Repository-Name:** Geben Sie Ihren Erweiterungsschlüssel ein
- **Beschreibung:** Sie können einfach eine Beschreibung aus Ihrer ext\_emconf.php einfügen
- **Erlaubnis:** Wählen Sie "Öffentlich", weil es TER ist.

  ![[Translate to German:] Create a new repository](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist_repository.png "[Translate to German:] Create a new repository")

### Verbinden von Code mit Git

Lassen Sie uns nun das Git-Repository in Ihrer lokalen Umgebung einrichten und den Code nur über "Git" pflegen und hochladen.

#### **\# Globale Git-Konfiguration**

git config --global user.name "YOUR\_USERNAME"
git config --global user.email "your\_email\_address@example.com"

#### **\# Klonen Sie Ihr Repository**

 git clone [https://github.com/nitsan-technologies/ns\_news\_comments/issues](https://github.com/nitsan-technologies/ns_news_comments/issues)

#### **\# Auschecken, ziehen und einen Status sehen**

git checkout master
git pull origin master
git status

#### **\# Push your code**

Verschieben Sie den Code Ihrer Erweiterung in den Repository-Ordner git this.

git diff
git add.
git commit -m "Initial TYPO3 alpha version"
git push origin master/develop

Jetzt haben Sie ein aktuelles Repository in Ihrem lokalen und in Github. Pflegen Sie nun weiterhin Code und Änderungen zwischen Ihrem lokalen Git und Github.

Jetzt ist es an der Zeit, Composer zu konfigurieren. Packagist.org bietet eine sehr einfache Konfiguration für die Verbindung zwischen Ihrem Git-Repository und Composer. Natürlich unterstützt Packagist auch andere Git-Plattformen wie Gitlab ;)

### Git-Repo bei Packagist einreichen

**Schritt 1:** Gehen Sie auf <https://packagist.org/>

**Schritt 2:** Um sich anzumelden, können Sie entweder [https://packagist.org/register](https://packagist.org/register/) oder "Login with Github" unter <https://packagist.org/login/> verwenden.

**Schritt 3:** Nun wollen wir unser Paket/unsere Erweiterung einreichen, klicken Sie auf "Submit" [https://packagist.org/packages/submit](https://packagist.org/login/)

**Schritt 4:** Geben Sie die URL Ihres Github-Repositorys ein, und klicken Sie auf die Schaltfläche "Prüfen". Überprüfen Sie es einmal und reichen Sie dann Ihr Paket ein.

  ![[Translate to German:] The connection between Packagist and Git](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist3.png "[Translate to German:] The connection between Packagist and Git")

Wenn Sie einige Fehler erhalten, dann überprüfen Sie Ihre composer.json in Ihrem Git-Repository.

**Schritt 5:** Jetzt werden Sie auf die Landing Page Ihres Pakets weitergeleitet, z.B. <https://packagist.org/packages/nitsan/ns-news-comments>. Hier können Sie sehen, dass alle Informationen aus der composer.json-Datei von Github geholt werden.

  ![[Translate to German:] How Packagist and Git will communicate?](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist4.png "[Translate to German:] How Packagist and Git will communicate?")

**Tipps:**

Packagist bietet auch kostenpflichtige Dienste für Ihre privaten Projekte an, Kasse [https://packagist.com/pricing​​​​​​​](https://packagist.com/pricing)

### Wie werden Packagist und Git kommunizieren?

Wann immer Sie eine Änderung vornehmen oder eine neue Version auf Github veröffentlichen, wie werden sie kommunizieren, um den neuesten Code auf composer zu nehmen? Führen Sie die folgenden Schritte durch.

API-Token von Packagist abrufen

**Schritt 1:** Gehen Sie zu Ihrem Profil [https://packagist.org/profile/](https://packagist.org/login/)

**Schritt 2:** Klicken Sie auf die Schaltfläche "Show Token API".

  ![[Translate to German:] How Packagist and Git will communicate?](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist6.png "[Translate to German:] How Packagist and Git will communicate?")

**Schritt 3:** Gehen Sie zu Ihrem Github-Repository > Einstellungen > Webhooks > Klicken Sie auf die Schaltfläche Webhook hinzufügen

**Schritt 4:** Details auffüllen

- **Nutzdaten**
- **Inhaltstyp:** application/json
- **Geheimnis:** Fügen Sie Ihren API-Token-Schlüssel von Packagist hinzu

  ![[Translate to German:] Github repository Webhooks](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist5.png "[Translate to German:] Github repository Webhooks")

Schließlich ist es an der Zeit, sie im [**TYPO3 Extensions**](https://nitsantech.de/blog/typo3-extensions) Repository TER zu veröffentlichen - einem App-Store für [**TYPO3**](https://nitsantech.de/blog/typo3). Sie können dies ganz einfach tun, indem Sie einem der folgenden Wege folgen:

### Option 1: Direktes Veröffentlichen auf TYPO3.org

**Schritt 1:** Landen Sie auf <https://extensions.typo3.org/> und melden Sie sich mit Ihrer Benutzerkennung an.

**Schritt 2:** Gehen Sie unter zu Meine Erweiterungen.

**Schritt 3:** Klicken Sie auf Erweiterungsschlüssel registrieren. Es wird dringend empfohlen, dies zu tun, bevor Sie mit der Entwicklung beginnen, um sicherzustellen, dass Sie einen eindeutigen Schlüssel haben.

  ![[Translate to German:] Directly publishing to TYPO3.org](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist13.png "[Translate to German:] Directly publishing to TYPO3.org")

**Schritt 4:** Gehen Sie zu Schlüssel für Erweiterungen verwalten und klicken Sie auf die Schaltfläche "Hochladen". Und übermitteln Sie Ihre Erweiterung mit einer Beschreibung Ihrer Version und laden Sie die Erweiterungsdatei (zip) hoch.

  ![[Translate to German:] Upload new version of 'nitsan-hellobar' ](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist7.png "[Translate to German:] Upload new version of 'nitsan-hellobar' ")

### Möglichkeit 2: TYPO3 Extension Utils

T3EXT Utils ist eine Sammlung von CLI-Utilities für die TYPO3 CMS Extension.

**Schritt 1:** Installieren und konfigurieren Sie über Git unter <https://github.com/etobi/Typo3ExtensionUtils#installation-with-git>

**Schritt 2:** Hochladen der Erweiterung in den TER durch <https://github.com/etobi/Typo3ExtensionUtils#upload-extension-to-ter>

### Option 3: Automatische Veröffentlichung von Github in TER

Eine der genialsten Lösungen von [@NamelessCoder](https://twitter.com/NamelessCoder) zum automatischen Hochladen Ihrer Erweiterung aus dem Github-Repository in TER. Empfehlen Sie, die komplette Lösung<http://release.namelesscoder.net/> zu sehen (sie ist kostenlos und sicher).

### Option 4: Automatische Veröffentlichung durch Travis CI

Sehen Sie sich die Detaillösung und den Artikel von [@helhum](https://twitter.com/helhum) unter <https://insight.helhum.io/post/140850737265/automatically-upload-typo3-extensions-to-ter-with> an.

**Tipps:**

Um die Composer-Unterstützung und den Befehl anzuzeigen, gehen Sie zu Meine Erweiterung und klicken Sie auf die Schaltfläche "**Bearbeiten**" für Ihre bestimmte Erweiterung. Aktivieren Sie das Kontrollkästchen "**Published to Packagist**" und geben Sie den Komponistennamen der Erweiterung an.

  ![[Translate to German:] ns_ext_compatibility](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist9.png "[Translate to German:] ns_ext_compatibility")

*Hurra!*

Ihre [TYPO3 Extension kann nun mit einem einfachen Composer-Befehl installiert](https://nitsantech.de/blog/how-to-install-and-uninstall-typo3-extensions) werden, z.B,

composer req nitsan/ns\_ext\_compatibility

Um die Community zu pflegen und zu unterstützen, ist die Versionierung der Erweiterung sehr wichtig.

### Wie sollte die Versionierung sein?

  ![[Translate to German:] Maintaining proper versions and dependencies](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist8.png "[Translate to German:] Maintaining proper versions and dependencies ")

Kennen Sie Semantische Versionierung?

Beispiel Erweiterungsversion: 1.1.2.

Geben Sie eine Versionsnummer MAJOR.MINOR.PATCH an, erhöhen Sie die:

- MAJOR-Version, wenn Sie inkompatible API-Änderungen vornehmen,
- MINOR-Version, wenn Sie Funktionalität abwärtskompatibel hinzufügen, und
- PATCH-Version, wenn Sie abwärtskompatible Fehlerbehebungen vornehmen.

Zusätzliche Bezeichnungen für Vorabveröffentlichungen und zum Erstellen von Metadaten sind als Erweiterungen des Formats MAJOR.MINOR.PATCH verfügbar.

Lesen Sie mehr Details unter <https://semver.org/>

### Eine Version an allen Stellen

Achten Sie darauf, dass Sie an allen Stellen die gleiche Versionsnummer verwenden. Manchmal kann es in der Eile passieren, dass Sie die Versionsnummer bei Extension, Git und Composer falsch konfigurieren.

#### **TER-Verlängerung**

Setzen Sie in ext\_emconf.php 'version' => 'x.x.x',

  ![[Translate to German:] One version at all places](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist10.png "[Translate to German:] One version at all places")

#### **Git-Version freigeben**

Lassen Sie uns den gleichen Versionscode auf Github veröffentlichen.

  ![[Translate to German:] Git version release](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist14.png "[Translate to German:] Git version release")

#### **Packagist/Composer-Version**

Der Packagist holt sich automatisch die Versionsnummer aus Git. Wenn Sie die neueste Release-Version nicht sehen können, dann klicken Sie auf die Schaltfläche "Update".

  ![[Translate to German:] Packagist/Composer version](https://nitsantech.de/fileadmin/ns_theme_ns2019/blog/live/TYPO3-ter-extensions-with-composer-git-packagist/TYPO3-ter-extensions-with-composer-git-packagist12.png "[Translate to German:] Packagist/Composer version")

### Abhängigkeitsmanagement

Eines der wichtigsten Dinge ist, dass wir bei jedem Release unserer Erweiterung die Abhängigkeiten erstellen und gut definieren müssen. Es könnte mehrere Abhängigkeiten geben wie:

1. TYPO3-Kernversion
2. Andere [**TYPO3-Erweiterungen**](https://t3planet.de/typo3-extensions)
3. PHP version

##### **In ext\_emconf.php**

Richten Sie die richtigen Abhängigkeitsversionen bei Einschränkungen ein, indem Sie die Version von TYPO3 und anderen Erweiterungen definieren.

'constraints' => array(
'depends' => array(
 'typo3' => '6.2.0-9.5.5',
 'news' => '3.0.0-7.1.0',
 ),
 'conflicts' => array(
 ),
 'suggests' => array(
 ),
),

##### **In composer.json**

Auf ähnliche Weise müssen Sie Abhängigkeiten in composer.json definieren

"require": {
"typo3/cms-core": ">=6.2.0 || <=9.5.5",
"georgringer/news": ">=3.0.0"
},

Lesen Sie mehr über die Versionsverwaltung von Abhängigkeiten mit Composer unter [https://getcomposer.org/doc/articles/versions.md​​​​​​​](https://getcomposer.org/doc/articles/versions.md)

### Lokale Umgebung einrichten

Um [**TYPO3 Extensions**](https://nitsantech.de/blog/typo3-extensions) zu initiieren und zu entwickeln, empfehlen wir die folgenden Tools und Techniken;

- Praxis mit Docker und DDEV
- Composer installieren
- Git einrichten
- PHPStorm IDE verwenden

### TYPO3 Extension Entwicklung

Um der TYPO3-Community die beste Qualität der Extensions zu bieten, sollten Sie Ihr Bestes tun, um TYPO3-Extensions nach allen Industriestandards zu entwickeln:

- Lesen und durchlaufen Sie die [Erstellung einer ersten Extension](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/Extbase/Index.html) aus den TYPO3-Dokumenten.
- Um Ihre Erweiterung schnell in Betrieb zu nehmen, können Sie den beliebtesten [EXT:extension\_builder verwenden](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/Kickstarter/FromScratch/Index.html)
- Lesen Sie das ExtbaseFluid-Buch aus den TYPO3-Dokumenten.
- Modernes Arbeiten und Code-Review mit Industriestandards wie PHP PSR-Standards, Unit-Testing, etc,

Wie Sie wissen, ist "TER" unser App-Store, also lassen Sie uns unser Bestes tun, um ihn gesund zu halten und der Community etwas zurückzugeben. Lassen Sie uns gemeinsam mit der [**TYPO3 Agentur**](https://nitsantech.de/typo3-agentur) unser Bestes tun, um gut entwickelte, reibungslose Veröffentlichungen und eine gesunde Wartung unserer TYPO3 Extensions sicherzustellen.

Hier ist die kurze Zusammenfassung:

- Verstehen Sie die Bedeutung sowie die Leistungsfähigkeit des Composers. Nutzen Sie ihn weiterhin für die Community und Ihre privaten Projekte.
- Entwickeln und testen Sie Ihre Arbeit und Ihren Code gut.
- Verstehen Sie Versionierung und Abhängigkeiten.
- composer.json einrichten
- Initiieren Sie Git und pushen Sie es zu Ihrem bevorzugten Git-Tool wie Github, Gitlab, BitBucket, etc,
- Erstellen einer Verbindung zwischen Packagist und Git
- Erweiterung im TER veröffentlichen
- Seien Sie stolz auf Ihren Beitrag und trinken Sie ein Bier, um ihn zu feiern :)

Viel Spaß beim Coding und tragen Sie weiterhin zur großen TYPO3 Community bei!

Menschen zum Programmieren inspirieren!

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

### Mihaela Angelova

Projekt Managerin

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

Mihaela sorgt dafür, dass Technologieprojekte auf Kurs bleiben und Geschäftsziele erreicht werden. Sie ist spezialisiert auf die Koordination von Teams, die Optimierung von Arbeitsabläufen und die erfolgreiche Umsetzung von Projekten. Bei NITSAN arbeitet sie eng mit Kunden zusammen, um Ideen in umsetzbare Lösungen zu verwandeln. In ihrer Freizeit erkundet sie gerne neue Wanderwege.

 Kommentare und Antworten
------------------------

 Danke für deinen Kommentar. Ihr Kommentar wurde erfolgreich hinzugefügt.

Danke für deinen Kommentar. Dein Kommentar wird nach der Überprüfung sichtbar.

Oops! Something went wrong, please try again later.

##### **Sei der erste der kommentiert**

  ### Verwandte Blogs

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

#### TYPO3 Extensions Entwickelt und verwaltet von NITSAN

 ](https://nitsantech.de/blog/typo3-extensions)

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

#### Wie man Installiert und Deinstalliert TYPO3 Erweiterungen

 ](https://nitsantech.de/blog/how-to-install-and-uninstall-typo3-extensions)