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

Are you developing, publishing and maintaining TYPO3 extension at TER and interested to know, the best practice and standards for your TYPO3 Extensions? Then, you are in the right place. Keep reading!

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

Unser App Store heißt TER - und er ist kostenlos! ~ TYPO3 GmbH

Warum Composer + Git + Packagist

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.

Bereiten Sie Ihre Erweiterung für den Composer vor

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 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. Composer unter Schritt-für-Schritt-Anleitung zum TYPO3 Composer und der speziellen TYPO3-Seite.

{
  "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"
	}
   }
}

Versionieren Sie Ihren Code mit Git

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.

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.

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

 

# 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.

Die Verbindung zwischen Packagist und Git

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  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 

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.

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.

Tipps:

Packagist bietet auch kostenpflichtige Dienste für Ihre privaten Projekte an, Kasse 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/ 

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

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

Publishing-Erweiterung im TER

Schließlich ist es an der Zeit, sie im TYPO3 Extensions Repository TER zu veröffentlichen - einem App-Store für 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.

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.

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 zum automatischen Hochladen Ihrer Erweiterung aus dem Github-Repository in TER. Empfehlen Sie, die komplette Lösunghttp://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 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.

Hurra!

Ihre TYPO3 Extension kann nun mit einem einfachen Composer-Befehl z.B. installiert werden,

 

composer req nitsan/ns_ext_compatibility

Pflegen von korrekten Versionen und Abhängigkeiten

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

Wie sollte die Versionierung sein?

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',

Git-Version freigeben

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

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".

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
  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​​​​​​​ 

Pro-Tipps für die Extension-Entwicklung

Lokale Umgebung einrichten

Um 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:

Fazit

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 unser Bestes tun, um unsere TYPO3-Extensions gut zu entwickeln, reibungslos zu veröffentlichen und gesund zu pflegen.

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!

Comments and Responses

×

Name ist erforderlich!

Enter valid name

Gültige E-Mail ist erforderlich!

Enter valid email address

Comment is required!

You have reached the limit for comments!

* These fields are required.

Be the First to Comment

Related Blogs