1. Уроки Composer. Composer - менеджер зависимостей для PHP
Composer - инструмент управления зависимостями для PHP. Вы можете указать от каких библиотек(пакетов) зависит ваш проект, и сomposer установит их за вас. Composer именно менеджер зависимостей, а не менеджер пакетов - это означает что библиотеки(пакеты) устанавливаются внутрь каждого проекта отдельно, а не глобально в систему.
Зачем нужен Composer?
В мире PHP есть тенденция изобретать велосипеды снова и снова. Это обусловлено тем что какое-то время не было удобного менеджера зависимостей, и места в котором бы можно было найти подходящие решения. Установка сторонних библиотек зачастую влекла за собой необходимость поиска и установки еще каких-то библиотек. В итоге порой было проще написать свою библиотеку чем устанавливать и поддерживать чужую.
Composer избавляет от проблем с зависимостями, и благодаря официальному репозиторию packagist.org, поиск необходимого пакета стал очень быстрым и простым.
Как работает Composer
Идея работы composer не нова, при его разработке брали идеи из пакетного менеджера для node.js - npm и Bundler - менеджер для управления зависимостями в ruby приложениях.
И так:
- Ваш проект зависит от ряда библиотек
- Некоторые из этих библиотек зависят от других библиотек.
- Вы указываете какие библиотеки нужны непосредственно вам
- Composer находит нужные библиотеки нужных вам версий и устанавливает их(в папку проекта), попутно устанавливая библиотеки необходимые для работы этих библиотек.
Где найти пакеты
По умолчанию пакеты скачиваются из официального репозитория packagist.org. Любой желающий может добавить туда пакет, либо скачать его.
Так-же можно скачивать пакеты напрямую из любого git, svn или mercurial репозитория, или это может быть просто zip архив доступный по любому адресу.
Устанавливаемая библиотека не обязательно должна быть оформлена в виде Composer-пакета.
Объявление зависимостей
Допустим, вы создаете проект, и вам нужна библиотека для ведения логов. Вы решаете использовать monolog. Все что вам нужно для добавления ее в проект это composer.json файл, который описывает зависимости проекта.
{ "require": { "monolog/monolog": "1.2.*" } }
Мы просто указываем что наш проект требует установки пакета monolog/monolog любой версии начинающейся на 1.2 (например 1.2.1, 1.2.2 и т.д.)
Подробнее о возможностях и использовании Composer читайте в следующих уроках.
Вы можете оставить первый комментарий