Die 3-teilige Artikelserie OXID6 Module zeigt unterschiedliche Optionen, die ab „v6“ zur Verfügung stehen, um Module bzw. Pakete allgemein (kann auch zB. ein Theme sein) komplett via Composer zu installieren.
Die gezeigten Installationsarten erfolgen allesamt über die Konsole, ohne händische Eingriffe in der OXID-composer.json oder in den Packages.
Inhaltsübersicht:
- Teil #1: Module mit und ohne Packagist via Composer installieren
- Teil #2: Module aus einem Zip-Archiv via Composer installieren
- Teil #3: Satis – das eigene Composer Repository
Composer kann Module direkt aus Zip-Archiven installieren.
Auf dem Server sollte hierfür die PHP Zip Extension installiert sein, i.d.R ist das bei den meisten Webspaces bereits der Fall.
Sie können einfach im OXID Projekt einen neuen Ordner für Ihre Zip-Archive (Module) anlegen, in welchen Sie die Zip-Dateien ablegen.
Die Dateien müssen vorher nicht extra entpackt und in die korrekten Ordner kopiert werden, all das erledigt Composer.
Zip Archiv hochladen
Das Zip-Archiv muss irgendwo abgelegt werden, damit Composer es zur Installation verwenden kann.
Es bietet sich zB. im OXID-Projekt direkt der vendor-Ordner an.
Darin können Sie der Übersichtlichkeit halber einen Ordner namens „zip“ erstellen und in diesen die Zip-Archive hochladen.
Sie können Ihr eigenes Modul verwenden, oder es zunächst mit einem öffentlichen GitHub-Modul versuchen, zB. ecs/demo, welches hier direkt bei GitHub als Zip heruntergeladen werden kann.
Das Zip kopieren Sie, wie es ist, ohne es zu entpacken, einfach in den neuen Ordner vendor/zip.
Zip-Ordner bekannt machen
Composer muss mitgeteilt werden, dass er ab sofort auch im zip-Ordner nachsehen muss, ob dort ein angefordertes Package verfügbar ist.
Mit folgendem Befehl wird der zip-Ordner in die OXID-composer.json eingetragen:
composer config repo.meinzip artifact ./vendor/zip
Der neue Eintrag in der composer.json wird dann folgendermaßen aussehen:
"repositories": {
"meinzip ": {
"type": "artifact",
"url": "./vendor/zip"
}
}
Package bzw. Modul installieren
Die im Zip-Ordner verfügbaren Zip-Archive können nun wie gewohnt installiert werden, hier zB. das Demomodul:
composer require ecs/demo
Zu beachten ist, dass Composer zwar standardmäßig lokale Packages bevorzugt, falls diese mit gleichen Namen auch bei Packagist gelistet wären, jedoch darf auch die Versionsnr. nicht niedriger sein als die des bei Packagist verfügbaren Paketes.
Voraussetzung für die hier beschriebene Installationsart ist eine Angabe der Modulversion in der Modul-composer.json, zB. "version": "1.0.0",
.
Packagist kann übrigens, falls erforderlich, mit folgendem Befehl deaktiviert werden:
composer config repo.packagist false
„Kaufmodule“ aus Zip-Archiv installieren
Grundsätzlich sollte eine Modulinstallation so erfolgen, wie in der Readme – Datei beschrieben.
Bei kommerziellen eComStyle.de Modulen wird in der Readme zwar ein anderer Installationsvorgang beschrieben, jedoch können diese Module auch wie in diesem Artikel gezeigt, direkt als Zip-Archiv auf dem Server abgelegt und mit composer require...
fertig installiert werden.
Vorteil dieser Methode ist, dass die Fehleranfälligkeit relativ gering ist.
Sicherlich funktioniert dieser Installationsweg auch mit kommerziellen OXID6-Modulen anderer Anbieter.
Alle Artikel der Serie „OXID6 Module“
- Teil #1: Module mit und ohne Packagist via Composer installieren
- Teil #2: Module aus einen Zip-Archiv via Composer installieren (dieser Artikel)
- Teil #3: Satis – das eigene Composer Repository