Anleitung: Composer

Was ist das und wofür ist das gut?

Composer ist ein Paketmanager für PHP, es wird über die Kommandozeile ( SSH Console) ausgeführt und installiert Abhängigkeiten (Bibliotheken, Shop-Bestandteile, Module) für die Anwendungen. Es kann unter anderem prüfen, ob ein Modul auf dem jeweiligen Server laufen würde und ggf. die Installation komplett verhindern, noch bevor die fehlenden Systemanforderungen den Shop blockieren würde.

Wichtiges Grundwissen:

Composer wird über zwei Dateien gesteuert:

  • composer.json enthält alle Anweisungen und Abhängigkeiten, die für Installation der Anwendung benötigt werden.
  • composer.lock enthält den aktuellen Stand der Installation, d.h. installierte Abhängigkeiten und deren Versionen

Es gibt zwei Arten von Abhängigkeiten:

  • require diese Abhängigkeiten werden benötigt, damit die Anwendung funktioniert
  • require-dev diese Abhängigkeiten werden benötigt, wenn man die Anwendung anpassen will (SASS/LESS Compiler für Themes, automatisierten Tests, etc)

Der Programmaufruf passiert über Befehle und Parameter: composer befehl --parameter
Für einige Befehle und Parameter gibts Kurzformen, z.B. i für install, u für update oder -o für --optimize-autoloader
Mehr zu den Befehlen und Parametern hier, aber wir werden erst mal bei ausgeschriebenen Befehlen bleiben.

Allgemeine Befehle:

  • composer install
    installiert alle Abhängigkeiten aus der composer.json
  • composer install --no-dev
    installiert nur die notwendigen Abhängigkeiten aus der composer.json
  • composer update
    aktualisiert alle Abhängigkeiten aus der composer.json
  • composer update--no-dev
    aktualisiert nur die notwendigen Abhängigkeiten aus der composer.json
  • composer require vendor/module
    installiert eine neue Abhängigkeit mit allen ihren Abhängigkeiten
  • composer require --no-dev vendor/module
    installiert eine neue Abhängigkeit nur mit ihren notwendigen Abhängigkeiten
  • composer show
    zeigt alle installierten Pakete und deren Version an

Composer für/mit OXID nutzen:

  • Bei Live-Shops müssen wir so gut wie immer -- no-dev Parameter nutzen, sonst installiert Composer unnötige Komponenten.
  • composer install und composer update sollten nicht im Live-Betrieb benutzt werden.
  • beim update sollte --optimize-autoloader (-o) Parameter benutzt werden (info)

OXID-spezifische Befehle:

(vendor/module entspricht jeweils dem Modul bzw der Abhängigkeit)
Modul installieren:

composer require --no-scripts --update-no-dev --no-interaction --optimize-autoloader vendor/module

Modul aktualisieren:

composer update --no-dev vendor/module

Modul entfernen:

composer remove --update-no-dev --no-interaction --optimize-autoloader vendor/module

Bitte beachtet auch die Installationsanleitung des Moduls, falls zusätzliche Schritte (Template Anpassungen, Konfiguration, SQL Import etc) benötigt werden.

2 Likes