php:composer

# Composer

Composer is a PHP dependency manager. In other words, you (the developer) specify in a configuration file what PHP packages you want to use in your project, and Composer will automagically download the packages as well as any other packages needed by the packages you listed.

It also will generate an autoload.php file, which when required or included in your PHP script will automagicallay load all the packages it downloaded and let you refer to them using a standard namespacing scheme.

## Init

The starting point is a file called composer.json that exists in the root of your project. You can manually create composer.json or you can issue:

\$ compser init

to have composer scaffold out a composer.json file for you.

Once the composer.json file has been scaffolded out, you'll have to manually edit it to change it.1)

Assuming you have a scaffolded composer.json file:

{
"name": "mithat/foobar",
"description": "A Composer example",
"authors": [
{
"name": "Mithat Konar",
}
],
"require": {}
}

you specify packages you want to use (hereafter referred to as dependencies) as follows:

TODO

TODO

TODO

TODO

## Managing version changes (lock files)

TODO

1)
TODO: Is this true? Is there a composer command than will download a package and automatically add it to composer.json?