Table of content
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".
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.
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
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/
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:
- TYPO3-Kernversion
- Andere TYPO3-Erweiterungen
- 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:
- Lesen und durchlaufen Sie die Erstellung einer ersten Extension aus den TYPO3-Dokumenten.
- Um Ihre Erweiterung schnell in Betrieb zu nehmen, können Sie den beliebtesten EXT:extension_builder verwenden.
- Lesen Sie das ExtbaseFluid-Buch aus den TYPO3-Dokumenten.
- Modernes Arbeiten und Code-Review mit Industriestandards wie PHP PSR-Standards, Unit-Testing, etc,
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
Be the First to Comment