Composer is PHP's package manager. It downloads libraries and generates an autoloader so your own classes are available without any manual require.
# macOS / Linux
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# Windows: download installer from https://getcomposer.org
composer init # interactive setup
composer require guzzlehttp/guzzle # add dependency
composer require --dev phpunit/phpunit # dev only
{
"name": "myapp/api",
"require": {
"php": "^8.2",
"guzzlehttp/guzzle": "^7.0"
},
"autoload": {
"psr-4": {
"App\": "src/"
}
}
}
<?php
require "vendor/autoload.php";
// src/Models/User.php (namespace App\Models)
// src/Services/Mailer.php (namespace App\Services)
use App\Models\User;
use App\Services\Mailer;
$user = new User(1, "Alice");
$mailer = new Mailer();
composer install # install from lock file
composer update # update within constraints
composer dump-autoload # regenerate autoloader
composer outdated # show outdated packages
composer remove pkg # uninstall a package