3.0 KiB
Introduction
Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you.
Dependency management
Composer is not a package manager. Yes, it deals with "packages" or libraries, but
it manages them on a per-project basis, installing them in a directory (e.g. vendor
)
inside your project. By default it will never install anything globally. Thus,
it is a dependency manager.
This idea is not new and Composer is strongly inspired by node's npm and ruby's bundler. But there has not been such a tool for PHP.
The problem that composer solves is this:
a) You have a project that depends on a number of libraries.
b) Some of those libraries depend on other libraries .
c) You declare the things you depend on
d) Composer finds out which versions of which packages need to be installed, and install them (meaning it downloads them into your project).
Declaring dependencies
Let's say you are creating a project, and you need a library that does logging.
You decide to use monolog. In order to
add it to your project, all you need to do is create a composer.json
file
which describes the project's dependencies.
{
"require": {
"monolog/monolog": "1.0.*"
}
}
We are simply stating that our project requires some monolog/monolog
package,
any version beginning with 1.0
.
Installation
1) Downloading the Composer Executable
To actually get Composer, we need to do two things. The first one is installing composer (again, this mean downloading it into your project):
$ curl -s http://getcomposer.org/installer | php
This will just check a few PHP settings and then download composer.phar
to
your working directory. This file is the composer binary. It is a PHAR (PHP
archive), which is an archive format for PHP which can be run on the command
line, amongst other things.
You can install composer to a specific directory by using the --install-dir
option and providing a target directory (it can be an absolute or relative path):
$ curl -s http://getcomposer.org/installer | php -- --install-dir=bin
You can place this file anywhere you wish. If you put it in your PATH
,
you can access it globally. On unixy systems you can even make it
executable and invoke it without php
.
2) Using Composer
Next, run the command the install
command to calculate and download dependencies:
$ php composer.phar install
This will download monolog into the vendor/monolog/monolog
directory.
Autoloading
Besides download the library, Composer also prepares an autoload file that's capable of autoloading all of the classes in any of the libraries that it downloads. To use it, just add the following line to your code's bootstrap process:
require 'vendor/.composer/autoload.php';
Woh! Now starting using monolog! To keep learning more about Composer, keep reading the "Basic Usage" chapter.