Dein Composer-Spellbook (Copy, Paste, Win)

Geschrieben von Joachim Namyslo

Aufgeschlagenes Zauberbuch mit Composer-Befehlen für Setup, Update, Debugging und Deployment.
Audiodatei
Songs
01

Lesedauer: 2 Minuten

Du weißt, was Composer ist – aber bei jedem Befehl googelst du die genaue Schreibweise erneut? Willkommen im Club. Kaum jemand merkt sich diese Zeilen.

Darum ist dieser Artikel dein Spellbook: die wichtigsten Composer-Befehle für Drupal, sortiert nach Situation – Projekt anlegen, Module verwalten, aktualisieren, Fehler suchen, live gehen. Alles zum Kopieren. Zur Einordnung: Composer ist der Paketmanager für PHP und holt Drupal und seine Module samt allen Abhängigkeiten auf deinen Server. Die Befehle tippst du im Terminal, im Ordner deines Projekts. Wenn du zuerst verstehen willst, warum es Composer überhaupt braucht, lies vorher den Artikel „Composer – Dein Inventory-Manager“.

1. Projekt-Setup

# Standard-Installation (aktuellste Version)
composer create-project drupal/recommended-project mein-projekt

# Bestimmte Version erzwingen (z. B. für Legacy-Support)
composer create-project drupal/recommended-project:^10.3 mein-projekt

2. Module & Themes verwalten

# Modul installieren
composer require drupal/modulname

# Dev-Tools installieren (nur lokal, z. B. Devel)
composer require --dev drupal/devel

# Spezifische Version anfordern
composer require drupal/token:^1.9

# Modul entfernen
composer remove drupal/modulname

3. Updates & Wartung

# Alles aktualisieren (Vorsicht!)
composer update

# Nur ein bestimmtes Modul updaten (sicherer)
composer update drupal/admin_toolbar

# Drupal Core updaten (inkl. Abhängigkeiten)
composer update drupal/core-recommended --with-dependencies

# Simulation: Was würde passieren? (vor großen Updates wichtig!)
composer update --dry-run

4. Debugging

# Warum ist dieses Paket überhaupt da?
composer why drupal/token

# Warum kann ich Paket X nicht installieren?
composer why-not drupal/problematic_module

# Alle veralteten Pakete anzeigen
composer outdated

5. Composer und Drush kombinieren

Composer holt den Code, Drush (die Kommandozeile für Drupal) erledigt die Arbeit in der Datenbank. Der Standard-Workflow:

  1. composer require drupal/modulname – Code holen
  2. ./vendor/bin/drush en modulname – Modul aktivieren
  3. ./vendor/bin/drush cr – Cache leeren

6. Patches anwenden

Manchmal hat ein Modul einen Bug, den die Community schon gefixt hat, der aber noch nicht im Release ist. Patch-Plugin installieren:

composer require cweagans/composer-patches

In der composer.json:

"extra": {
  "patches": {
    "drupal/core": {
      "Fix Critical Bug #12345": "https://www.drupal.org/files/issues/fix.patch"
    }
  }
}

7. Deployment

# Installiert exakt die Versionen aus der .lock-Datei (keine Updates!)
# --no-dev lässt Test-Tools weg, --optimize-autoloader beschleunigt PHP
composer install --no-dev --optimize-autoloader

Verzeichnisstruktur: Was gehört ins Git?

  • Committen (in die Versionsverwaltung Git übernehmen): composer.json (dein Wunschzettel), composer.lock (dein Kassenbon – extrem wichtig), /config (deine exportierten Drupal-Configs), /web/modules/custom (deine selbstgeschriebenen Module)
  • Ignorieren (.gitignore): /vendor, /web/core, /web/modules/contrib – Composer baut diese Ordner selbst

Ein typischer Arbeitstag

  1. Check: Gibt es Updates? → composer outdated
  2. Test: Trockenübung → composer update --dry-run
  3. Update: Ziehen → composer update
  4. DB-Sync: Datenbank anpassen → drush updb
  5. Clean: Cache leeren → drush cr
  6. Save: Commit → git add composer.json composer.lock

Fazit: Du musst nicht alle Befehle auswendig kennen. Für den Alltag reichen fünf: require, remove, update, outdated und install. Alles andere schlägst du hier nach.

Dein nächster Schritt: Leg mit composer create-project ein Test-Projekt an und installiere dort ein Modul, bevor du dasselbe auf deiner Live-Seite machst. Und vor jedem größeren Update gilt: erst ein Backup, dann der Befehl.