 ##  [🚀 Composer Cheat Sheet für Drupal](/blog/2025-08/composer-cheat-sheet-fuer-drupal) 

  31 August 2025  

 Image

![Vorschau](data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20500%20375'%2F%3E)     ![Grafik eines dirigierenden Charakters in einem Neonrahmen.](data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20500%20375'%2F%3E)      ![Grafik eines dirigierenden Charakters in einem Neonrahmen.](/sites/default/files/styles/16_9_512x288_focal_point_webp/public/2025-11/composer-cheet-sheat.png.webp?h=d1cb525d&itok=c7ljIuBs)  

 

 

 



 

 

 

 

Lesedauer des Inhalts

3 Minuten

 

 

 

💡

### Keyfacts &amp; Tkeaways

Bevor wir in die Details gehen, hier das Wichtigste auf einen Blick:

- **Zentrale Schaltstelle: Composer steuert deinen gesamten Drupal-Lifecycle – vom Projekt-Setup über Modul-Updates bis hin zum Patch-Management und Deployment.**
- **Versionskontrolle ist Pflicht: Die composer.lock Datei garantiert, dass alle Teammitglieder und Server exakt die gleichen Paketversionen nutzen; der /vendor-Ordner gehört hingegen nie ins Git.**
- **Performance für Live-Seiten: Nutze im Deployment immer composer install --no-dev --optimize-autoloader, um die Seite schnell zu halten und Entwickler-Tools auf dem Produktionsserver zu vermeiden.**





Das Dokument deckt alle wesentlichen Bereiche ab: von der Projekteinrichtung über Modul- und Theme-Management bis hin zur Performance-Optimierung und Deployment-Strategien. Besonderer Fokus liegt auf der Integration von Drush-Kommandos, dem Patch-Management und der korrekten Verzeichnisstruktur für Composer-basierte Drupal-Projekte.

Diese Referenz dient als praktisches Nachschlagewerk für den täglichen Entwicklungsworkflow und enthält bewährte Praktiken aus der Drupal-Community. Sie unterstützt Entwickler dabei, ihre Produktivität zu steigern und häufige Fehler bei der Composer-Nutzung zu vermeiden.

## Projekt Setup

### Neues Drupal-Projekt erstellen

#### Standard Drupal-Projekt anlegen 

```bash
composer create-project drupal/recommended-project mein-projekt

```

####  Mit spezifischer Version

```bash
composer create-project drupal/recommended-project:^11.2.3 mein-projekt

```

#### Ohne sofortige Installation

```bash
composer create-project --no-install drupal/recommended-project mein-projekt

```

### Repository konfigurieren

```bash
composer config repositories.drupal composer https://packages.drupal.org/8

```

## 📦 Module &amp; Themes verwalten

### Installation

####  Modul installieren

```bash
composer require drupal/admin_toolbar

```

#### Theme installieren

```bash
composer require drupal/bootstrap

```

#### Dev-Abhängigkeiten mitinnstallieren

```bash
composer require --dev drupal/devel

```

#### Spezifische Version

```bash
composer require drupal/pathauto:^1.8
composer require drupal/token:1.x-dev

```

### Aktualisierungen

#### Alle Pakete aktualisieren

```bash
composer update

```

#### Spezifisches Paket aktualisieren

```bash
composer update drupal/admin_toolbar

```

#### Das Kernsystem (Drupal Core) mit Abhängigkeiten aktualieiren

```bash
composer update drupal/core --with-dependencies

```

#### Dry-Run (Test) 

```bash
composer update --dry-run
```

### Paket Entfernen

```bash
composer remove drupal/admin_toolbar
```

## 🔍 Informationen &amp; Debugging

### Paket-Informationen

#### Alle installierten Pakete anzeigen

```bash
composer show
composer show --installed

```

#### Nur Drupal-Pakete anzeigen

```bash
composer show drupal/*
```

####  Veraltete Pakete finden

```bash
composer outdated drupal/*

```

#### Paket-Details anzeigen

```bash
composer show -a drupal/admin_toolbar

```

### Abhängigkeiten analysieren

#### Warum ist ein Paket installiert?

```bash
composer why drupal/token

```

####  Warum kann ein Paket nicht installiert werden?

```bash
composer why-not drupal/problematic_module
```

#### Abhängigkeitsbaum anzeigen

```bash
composer show --tree
```

### Suche

####  Nach Paketen suchen 

```bash
composer search admin*tool* composer search "admin toolbar"
```

## 🛠️ Drush Integration

### Drush Installation

```bash
composer require --dev drush/drush 
```

####  Version prüfen 

```bash
./vendor/bin/drush --version 
```

####  Status anzeigen 

```bash
./vendor/bin/drush status
```

### Wichtigste Drush-Befehle

####  Module aktivieren/deaktivieren 

```bash
./vendor/bin/drush en admin_toolbar 
```

```bash
./vendor/bin/drush dis admin_toolbar  
```

#### Datenbank-Updates 

```bash
./vendor/bin/drush updb  
```

#### Cache leeren 

```bash
./vendor/bin/drush cr  
```

#### Installierte Module auflisten 

```bash
./vendor/bin/drush pml 
```

####  Sicherheitsupdates prüfen 

```bash
./vendor/bin/drush sec
```

## 🩹 Patch-Management

### Patch-Plugin installieren

```bash
composer require cweagans/composer-patches
```

### Composer.json Konfiguration

```json
{  "extra": {    "enable-patching": true,    "composer-exit-on-patch-failure": true,    "patches": {      "drupal/core": {        "Fix für Issue #123456": "https://www.drupal.org/files/issues/patch.patch"      },      "drupal/views": {        "Lokaler Fix": "patches/views-fix.patch"      }    }  } }
```

## ⚡ Performance &amp; Optimierung

### Composer optimieren

####  Composer selbst aktualisieren 

```bash
composer self-update 
```

####  Autoloader optimieren 

```bash
composer dump-autoload --optimize  
```

#### Cache leeren 

```bash
composer clear-cache 
```

####  Memory-Limit erhöhen (temporär) 

```bash
php -d memory_limit=2G composer require drupal/large-module
```

### Produktivinstallation

```bash
composer install --no-dev --optimize-autoloader --no-suggest
```

## 🔧 Validierung &amp; Maintenance

### Projektvalidierung

####  Composer.json validieren 

```bash
composer validate 
```

####  Diagnose ausführen 

```bash
composer diagnose  
```

#### Veraltete Pakete prüfen 

```bash
composer outdated 
```

####  Sicherheitsprobleme prüfen 

```bash
composer audit
```

## 📁 Typische Verzeichnisstruktur

mein-projekt/

├── composer.json Abhängigkeiten &amp; Konfiguration

├── composer.lock Exakte Versionen (committen!)

├── vendor/ Composer-Abhängigkeiten (nicht committen)

├── web/ Webroot

│ ├── core/ Drupal Core (nicht committen)

│ ├── modules/

│ │ ├── contrib/ Contrib-Module (nicht committen)

│ │ └── custom/ Custom-Module (committen)

│ ├── themes/

│ │ ├── contrib/ Contrib-Themes (nicht committen)

│ │ └── custom/ Custom-Themes (committen)

│ └── sites/

└── config/ Konfiguration (committen)

## 🗂️ .gitignore Beispiel

gitignore

 Composer

/vendor/

/web/core/

/web/modules/contrib/

/web/themes/contrib/

/web/profiles/contrib/

/web/libraries/

Drupal

/web/sites/\*/files/

/web/sites/\*/private/

/web/sites/\*/translations/

 Behalten

!/web/sites/default/settings.php

!/web/sites/default/services.yml

## 🚀 Workflows

### Entwicklung

```bash
1. composer require drupal/modulname 

2. ./vendor/bin/drush en modulname 

3. git add composer.json composer.lock 

4. git commit -m "Add modulname"
```

### Deployment

```bash
1. git pull 

2. composer install --no-dev --optimize-autoloader 

3. ./vendor/bin/drush updb -y 

4. ./vendor/bin/drush cr
```

### Aktualisierungen

```bash
1. composer outdated drupal/* 

2. composer update --dry-run 

3. composer update 

4. ./vendor/bin/drush updb -y 

5. ./vendor/bin/drush cr 

6. git add composer.json composer.lock 

7. git commit -m "Abhängigkeiten aktualisiert"
```

## 💡 Tipps &amp; Best Practices

- **Immer composer.lock committen** für identische Versionen im Team
- **Nie /vendor/ committen** - wird bei composer install generiert
- **--dry-run vor großen Updates** verwenden
- **Memory-Limit erhöhen** bei großen Modulen
- **Regelmäßig composer outdated prüfen**
- **Patches dokumentieren** in separater README
- **Dev-Dependencies** für lokale Entwicklung nutzen

🔗

### Vertiefe dein Wissen oder siehe dir die Quellen an:

- Drupal.org Dokumentation - Using Composer to Manage Drupal Site Dependencies: [https://www.drupal.org/docs/develop/using-composer/using-composer-to-ma…](https://www.drupal.org/docs/develop/using-composer/using-composer-to-manage-drupal-site-dependencies)
- Offizielle Composer Dokumentation - Basic Usage: <https://getcomposer.org/doc/01-basic-usage.md>
- GitHub Repository - Composer Patches Plugin (cweagans): <https://github.com/cweagans/composer-patches>







 

 

## Geschrieben von

 Joachim

 [![Profile picture for user Drupal TV](/sites/default/files/styles/thumbnail/public/pictures/2025-12/avatar4.png.webp?itok=z9kxe1G9)](/autor/joachim)

Über

Image

[![Logo der Drupal e.V., blau-weißer Kreis mit Tropfenmotiv.](/sites/default/files/2025-10/drupal-ev-badge.png)](https://drupal-tv.de/sites/default/files/2025-10/drupal-ev-badge.png "Logo der Drupal e.V., blau-weißer Kreis mit Tropfenmotiv.")

 

 

[Joachim (Profil auf Drupal.org)](https://www.drupal.org/u/joachim-namyslo) ist : Dein Drupal Brückenbauer



Ziel: Die Komplexität von Drupal und der damit in Verbindung stehenden Linux-Infrastruktur für dich abbauen, um Dir den schnellstmöglichen…







[Über Joachim](/autor/joachim)



 



 

 

### Tags

- [Composer](/themen/composer)
 


 

 

## Verwandte Blogbeiträge

Image

[   ![Grafik: Zeichnung einer Person, die die Hände hebt, auf blauem Hintergrund.](/sites/default/files/styles/16_9_512x288_focal_point_webp/public/2025-11/Darum-ist-Composer-f%C3%BCr-Drupal-so-wichtig.png.webp?h=d1cb525d&itok=I5WXVyYH) ](https://drupal-tv.de/sites/default/files/2025-11/Darum-ist-Composer-f%C3%BCr-Drupal-so-wichtig.png "Grafik: Zeichnung einer Person, die die Hände hebt, auf blauem Hintergrund.")

 

 



 

 ###  [⚙️Darum ist Composer für Drupal so wichtig](/blog/darum-ist-composer-wichtig-f%C3%BCr-drupal) 

  31 August 2025  

 Lesedauer des Inhalts

6 Minuten

 

Composer spielt eine zentrale Rolle, wenn es um die Wartung, Installation und Aktualisierung von Drupal-Websites geht – und gewinnt mit den Modulen Automatic Updates und Project Browser weiter an …



 

 

 



 



 

 

 

 



 

 

 ## Kommentare