Composer ist der meistgenutzte Paketmanager für PHP, vergleichbar mit npm
(JavaScript) oder pip
(Python). Er verwaltet Abhängigkeiten in PHP-Projekten zentral, sorgt für saubere Strukturen und automatisiert die Installation, Versionierung und das Autoloading externer Bibliotheken.
🧰 Wofür wird Composer verwendet?
- Installation & Verwaltung externer PHP-Pakete (Libraries, Tools, Frameworks)
- Automatische Versionierung und Kompatibilitätsprüfung
- Zentrales Autoloading via PSR-4
- Verwaltung von Entwicklungs- und Produktionsabhängigkeiten
- Ausführung von Scripts, Hooks oder Maintenance-Tasks
🧱 Einsatz in PHP-Frameworks
Composer ist unverzichtbar in modernen PHP-Projekten, z. B. bei:
- Laravel – vollständig Composer-basiert (Installation, Packages, CLI-Tools)
- Symfony – modularer Aufbau mit Composer-Integration
- Shopware, Magento, TYPO3, OctoberCMS – alle nutzen Composer für Abhängigkeiten
- Auch bei Framework-less Projekten ideal für PSR-kompatible Bibliotheken
💻 Kommunikation über Terminal/Konsole
Composer wird direkt über das Terminal gesteuert. Die wichtigsten Befehle:
composer install # Abhängigkeiten aus composer.lock installieren
composer update # Alle Pakete aktualisieren
composer require vendor/package # Neues Paket hinzufügen
composer remove vendor/package # Paket entfernen
composer dump-autoload # Autoload-Dateien neu generieren
➡️ Die Konfiguration erfolgt über die Datei composer.json
, welche alle Abhängigkeiten und Einstellungen enthält.
🔄 Pakete sind updatebar & versionierbar
- Semantische Versionierung (semver) wird unterstützt:
^
,~
,>=
, etc. - Composer prüft automatisch, ob neue Versionen kompatibel sind
- composer.lock sorgt für reproduzierbare Builds
- Mit
composer outdated
können veraltete Pakete erkannt werden
⚖️ Vergleich mit anderen Package-Managern
Tool | Sprache | Besonderheit |
---|---|---|
Composer | PHP | Versionssicherheit & PSR-Standard |
npm/yarn | JavaScript | CLI-fokussiert, riesiges Ökosystem |
pip | Python | Einfach, aber weniger strikte Versionierung |
NuGet | .NET | In Visual Studio integriert |
Bundler | Ruby | Ähnlich wie Composer, aber weniger universell |
✅ Vorteile
- ✔ Stabil & weit verbreitet – Standard im PHP-Ökosystem
- ✔ Saubere Abhängigkeitsstruktur mit
composer.json
- ✔ Reproduzierbare Installationen durch
composer.lock
- ✔ Autoloading out of the box
- ✔ Open Source & gut dokumentiert
❌ Nachteile
- ❌ Abhängig von PHP-Version & Systemkonfiguration
- ❌ Bei großen Projekten kann
composer update
langsam sein - ❌ Manuelle Konfliktlösung bei Versionsproblemen möglich
- ❌ CLI-orientiert – keine GUI für Einsteiger