К своему изумлению не нашел статьи на Хабре о менеджере зависимостей Composer.

В данной статье рассказывается как добавить в свой проект зависимости, используя Composer.

Рабочее окружение: Ubuntu 12.04, php 5.3.

Установка


После того как вы поставили Composer, нужно создать проект. Вся информация о пакете и зависимостях хранится в composer.json в корне проекта.

{
    "name": "cleverweb/habra_composer",
    "description": "Habrahabr composer",
    "authors": [
        {
            "name": "Alexandr Sidorov",
            "email": "asidorov01@gmail.com"
        }
    ]
}


Зависимости


Далее необходимо составить список зависимостей вашего проекта. В этом проекте установим php компилятор для LessCss.

    "require": {
        "php":                               ">=5.3.3",

        "leafo/lessphp":                     "*",
    }


"*" обозначает что мы принимаем любые версии lessphp. Доступные версии можно посмотреть на странице пакета.

Полный конфигурационный файл для установки:
{
    "name": "cleverweb/habra_composer",
    "description": "Habrahabr composer",
    "authors": [
        {
            "name": "Your Name",
            "email": "your.email@gmail.com"
        }
    ],

    "require": {
        "php":                               ">=5.3.3",

        "leafo/lessphp":                     "*"
    },

    "minimum-stability": "dev",

    "config": {
        "bin-dir": "bin/"
    }
}


«minimum-stability»: «dev» — означает что работаем с нестабильными версиями.

Можно установить зависимости командой консоли:

composer install

В папке vendors должен быть устрановлен lessphp.

Расширение кода


Теперь попробуем получить реальную выгоду от использования Composer, добавим Twitter Bootstrap в наш проект.

В свойство require добавляем пакет twitter/bootstrap.

"leafo/lessphp":                     "*",
"twitter/bootstrap":                 "dev-master"


Однако Composer незнает ни о каком Twitter Bootstrap, нужно добавить источник кода.

"repositories": [
    {
        "type": "package",
        "package": {
            "version": "dev-master",
            "name": "twitter/bootstrap",
            "source": {
                "url": "git://github.com/twitter/bootstrap.git",
                "type": "git",
                "reference": "v2.0.3"
            },
            "dist":{
                "url":"http://twitter.github.com/bootstrap/assets/bootstrap.zip",
                "type":"zip"
            }
        }
    }


Полный пример конфигурационного файла после обновления:

{
    "name": "cleverweb/habra_composer",
    "description": "Habrahabr composer",
    "authors": [
        {
            "name": "Your Name",
            "email": "your.email@gmail.com"
        }
    ],

    "require": {
        "php":                               ">=5.3.3",

        "leafo/lessphp":                     "*",
	"twitter/bootstrap":                 "dev-master"

    },

    "repositories": [
    {
        "type": "package",
        "package": {
            "version": "dev-master",
            "name": "twitter/bootstrap",
            "source": {
                "url": "git://github.com/twitter/bootstrap.git",
                "type": "git",
                "reference": "v2.0.3"
            },
            "dist":{
                "url":"http://twitter.github.com/bootstrap/assets/bootstrap.zip",
                "type":"zip"
            }
        }
    }],

    "minimum-stability": "dev",

    "config": {
        "bin-dir": "bin/"
    }
}


Обновляем зависимости:

composer update

Twitter Bootstrap встает в vendor/twitter/bootstrap/

На этом все, планируется расширение темы и размещение кода на github и composer.

Связанные ссылки:

Composer
Package list
Symfony official