====== Composer ======
[[https://getcomposer.org/|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 ''require''d or ''include''d 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.((TODO: Is this true? Is there a composer command than will download a package and automatically add it to ''composer.json''?))
===== Specify your dependencies =====
Assuming you have a scaffolded ''composer.json'' file:
{
"name": "mithat/foobar",
"description": "A Composer example",
"authors": [
{
"name": "Mithat Konar",
"email": "no@you-dont-get-my-email-addy.com"
}
],
"require": {}
}
you specify packages you want to use (hereafter referred to as **dependencies**) as follows:
TODO
===== Using what Composer downloaded =====
TODO
===== Specifying versions =====
TODO
===== Development dependencies =====
TODO
===== Managing version changes (lock files) =====
TODO