Dokumentation
Alles, was Sie brauchen, um Pakete von composer.meteorgpl.com mit Composer 2 zu installieren. Diese Seite ist auch als Markdown verfügbar.
Repository hinzufügen
Registrieren Sie das Repository in der composer.json des Projekts:
composer config repositories.meteorgpl composer https://composer.meteorgpl.com
Das Repository liefert nur Composer-2-Metadaten. Jedes enthaltene Paket ist auf der Seite Pakete aufgeführt.
Authentifizieren
Das Repository antwortet nur auf ein Token. Erstellen Sie eines auf Ihrer Kontoseite (Konto → Tokens) und speichern Sie es in der globalen auth.json von Composer:
composer config --global http-basic.composer.meteorgpl.com token <your-token>
Der Benutzername ist wörtlich token (die E-Mail-Adresse Ihres Kontos funktioniert ebenfalls); das Passwort ist das Token. Composer schreibt das Paar nach ~/.composer/auth.json (oder $COMPOSER_HOME/auth.json), nie in das Projekt. Wenn Sie Composer ohne gespeichertes Token ausführen, fragt es nach den Zugangsdaten und bietet an, sie zu speichern.
Übergeben Sie die Zugangsdaten in der CI über die Umgebung statt über eine Datei:
COMPOSER_AUTH='{"http-basic":{"composer.meteorgpl.com":{"username":"token","password":"<your-token>"}}}'
Tokens können ein Ablaufdatum haben und jederzeit über die Kontoseite widerrufen werden. Der Repository-Zugang ist an das Konto gebunden: Ein Token eines Kontos ohne Zugang erhält 403 mit einem Hinweis auf die Kontoseite; ein unbekanntes, abgelaufenes oder widerrufenes Token erhält 401.
Paketbenennung
| Typ | Konvention | Beispiel |
|---|---|---|
| Plugin | meteorgpl-plugin/<slug> |
meteorgpl-plugin/elementor-pro |
| Theme | meteorgpl-theme/<slug> |
meteorgpl-theme/rehub-theme |
Der Slug ist der eigene Ordnername des Plugins oder Themes unter wp-content/plugins bzw. wp-content/themes, in Kleinbuchstaben. composer/installers legt das Paket in einem Ordner mit diesem Namen ab, sodass WordPress das Verzeichnis sieht, das der Anbieter ausliefert.
Beispiel für composer.json
Klassisches WordPress
{
"repositories": [
{ "type": "composer", "url": "https://composer.meteorgpl.com" }
],
"require": {
"composer/installers": "^2.0",
"meteorgpl-plugin/elementor-pro": "^3.0",
"meteorgpl-theme/rehub-theme": "^19.0"
},
"extra": {
"installer-paths": {
"wp-content/plugins/{$name}/": ["type:wordpress-plugin"],
"wp-content/themes/{$name}/": ["type:wordpress-theme"]
}
},
"config": {
"allow-plugins": { "composer/installers": true }
}
}
Die installer-paths-Zuordnung teilt composer/installers mit, wohin Pakete vom Typ wordpress-plugin und wordpress-theme gehören.
Bedrock
Bedrock setzt composer/installers bereits voraus und ordnet beide Pakettypen web/app/plugins und web/app/themes zu. Fügen Sie das Repository hinzu und binden Sie die Pakete mit require ein; sonst ändert sich nichts.
Versionen
Jede Version ist ein Semver-Tag (v3.21.0) in der Git-Historie des Pakets und wird zu einer Dist-ZIP-Datei gebaut, deren SHA-256 auf der Paketseite und in der API angezeigt wird. composer.lock fixiert die exakte Version und die Dist-Prüfsumme, sodass jede Umgebung dieselben Bytes installiert.
Jede veröffentlichte Version bleibt verfügbar. composer update geht innerhalb Ihrer Versionsbeschränkung vorwärts; composer require meteorgpl-plugin/elementor-pro:3.20.0 geht zurück.
Lizenzschlüssel
An einem Paket wird nichts verändert. Der Lizenz-, Aktivierungs- und Update-Code des Anbieters wird unverändert ausgeliefert. Aktivieren Sie das Plugin oder Theme in WordPress mit dem Schlüssel, den Sie beim Anbieter gekauft haben; der eigene Update-Kanal und der Support des Anbieters stehen Ihnen als Lizenzinhaber weiterhin zur Verfügung. Die Lizenzseite erklärt die auf jeder Paketseite angezeigten Lizenzprofile und was aus den Archiven entfernt wird.
API
Eine öffentliche, schreibgeschützte JSON-API. Antworten sind fünf Minuten lang cachebar (Cache-Control: public, max-age=300) und auf 60 Anfragen pro Minute und IP-Adresse begrenzt; unbekannte Pakete antworten mit 404.
GET https://www.meteorgpl.com/api/packages- Die gelisteten Pakete, 50 pro Seite, neuestes Release zuerst. Parameter:
q(Suche),type(pluginodertheme),page. Jeder Eintrag:composer_name, type, title, description, latest_version, latest_released_at, versions_count, license_spdx, license_profile, homepage, url. GET https://www.meteorgpl.com/api/packages/{vendor}/{slug}- Ein Paket mit seinen veröffentlichten Versionen:
version, released_at, dist_size, dist_sha256, requires_php, requires_wp, tested_wp. GET https://www.meteorgpl.com/api/statstotal_packages, active_plugins, active_themes, total_versions, installs_30d, downloads_30d. Installationen sind die notify-batch-Meldungen von Composer; Downloads sind Downloads der Dist-ZIP-Dateien.GET https://www.meteorgpl.com/api/status- Der freigegebene Repository-Build:
build_id, created_at, package_count, version_count(null, solange kein Build existiert).
Jede Paketseite ist auch als Markdown unter /packages/{vendor}/{slug}.md oder mit Accept: text/markdown verfügbar, ebenso diese Seite unter /docs.md.