Neues Projekt starten
composer init # interaktiv
composer create-project laravel/laravel my-app # Skeleton für Laravel
Paket installieren
composer require guzzlehttp/guzzle
composer require --dev pestphp/pest
composer require symfony/console:^7.0 # Version pinnen
composer.json — die wichtigsten Felder
{
"name": "reisener/programmierung",
"type": "project",
"require": {
"php": "^8.2",
"laravel/framework": "^12.0"
},
"require-dev": {
"pestphp/pest": "^4.1"
},
"autoload": {
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"scripts": {
"test": "pest",
"cs": "pint"
}
}
Häufige Befehle
composer install # Alle Abhängigkeiten aus composer.lock installieren
composer update # composer.lock aktualisieren
composer update laravel/framework # Nur ein Paket updaten
composer remove some/package
composer dump-autoload # Autoloader neu aufbauen
composer show --outdated # Was ist veraltet?
composer audit # Security-Advisories prüfen
composer run test # Custom Script
composer.lock committen — immer!
Die composer.lock pinnt exakte Versionen. Sie muss ins Git — nur so ist eure Umgebung reproduzierbar. Ohne Lock-File installiert jeder Entwickler potenziell andere Versionen.