Что такое Composer
Composer – это пакетный менеджер зависимостей, предназначенный для упрощения загрузки и установки сторонних php библиотек в проект. С помощью него можно очень просто добавить в разрабатываемый проект php пакеты.
composer.json
ключевой файл при работе с Composer, это текстовый файл в котором используется формат JSON
описавающий все сторонние пакеты от которых зависит данный проект. Есть два способа воспользоваться Composer:
- Чтобы в разрабатываемый проект добавить сторонние библиотеки, в нём можно руками создать
composer.json
и описать в этом файле все необходимые зависимости. После этого для установки всех требуемых внешних php пакетов в проект достаточно будет ввести в консоли всего одну командуcomposer install
- Команда
require
, в этом случае самостоятельно создавать файлcomposer.json
не нужно.composer require
это команда для установки php пакетов в проект посредством Composer, которая автоматически создаст и пропишет файлcomposer.json
Composer применяется не только для установки php библиотек, с его помощью осуществляется установка различных php фреймворков Laravel
, Yii2
, Symfony
и CMS Drupal
, MODX
.
Composer представляет собой обычный php скрипт, программу написанную на языке php.
Основная цель этой программы заключается в том, чтобы предоставить веб-разработчику удобный инструмент, с помощью которого он сможет очень просто загружать и устанавливать пакеты в проект, их обновлять, а также при необходимости осуществлять их удаление. Все эти действия Composer позволяет выполнить с помощью ввода всего одной или нескольких команд.
В качестве репозитория пакетов Composer по умолчанию использует packagist.org.
При установке php пакетов, Composer не просто устанавливает их, он также устанавливает все зависимости, от которых эти пакеты зависят, если загружаемая библиотека будет зависеть от 3 других пакетов, а каждая из них, ещё в свою очередь от нескольких и так далее, то Composer всё это установит автоматически.
Дополнительно при загрузке сторонних библиотек Composer генерирует ещё файл composer.lock
. Если composer.json
это главный файл Composer, в котором содержится описание основных пакетов, включая требования к их версиям, то composer.lock
это файл содержащий уже не требования, а реальные версии пакетов которые им были установлены.
Основное назначение файла «composer.lock»
заключается в полном сохранении среды, в которой осуществлялась разработка и тестирование проекта.
Если захотите скопировать проект в другое место без переноса файла composer.lock
, то выполнив в нём команду composer install
, вы можете получить другие версии пакетов. Эта может случиться из-за выхода новых версий как основных пакетов, описанных в файле composer.json
, так и их зависимостей, зависимостей их зависимостей. Представим что выход новых версий основных пакетов не произошёл, но обновились версии у пакетов, от которых зависят основные пакеты. В результате установки работающего проекта, можем получить неработоспособный, если в какой-нибудь новой версии одного из этих пакетов была допущена ошибка.
Директория установки библиотек
Загрузку сторонних библиотек, Composer выполняет в папку vendor
, которую данный php скрипт создаёт в корневой директории проекта. Кроме этого, он ещё создаёт специальный файл autoload.php
, включив который в проект вы сразу же подключите к нему все ранее загруженные им библиотеки.