Composer tracks which versions of packages you have installed in a file called
composer.lock, which is intended to be committed to version control, so that when the project is cloned in the future, simply running
composer install will download and install all the project's dependencies.
Composer deals with PHP dependencies on a per-project basis. This makes it easy to have several projects on one machine that depend on separate versions of one PHP package.
Composer tracks which dependencies are only intended for dev environments only
composer require --dev phpunit/phpunit
Composer provides an autoloader, making it extremely easy to get started with any package. For instance, after installing Goutte with
composer require fabpot/goutte, you can immediately start to use Goutte in a new project:
<?php require __DIR__ . '/vendor/autoload.php'; $client = new Goutte\Client(); // Start using Goutte
Composer allows you to easily update a project to the latest version that is allowed by your composer.json. EG.
composer update fabpot/goutte, or to update each of your project's dependencies: