Найти в Дзене
Александр Крафтмург

Что такое Composer

Оглавление

Composer — это популярный менеджер зависимостей PHP, который упрощает процесс установки и обновления зависимостей проекта. Composer представляет собой обычный php скрипт, т.е. программу, написанную на языке php и работа с ним осуществляется в консольном режиме. Он проверяет, от каких прочих пакетов зависит конкретный проект, а затем устанавливает все необходимые версии пакетов в соответствии с требованиями, описанные в файле composer.json

Подписывайся на канал, чтобы не пропустить новые публикации!

Устройство Composer

  1. Автозагрузчик классов: При установке Composer создает файл автозагрузки (autoload.php), который содержит информацию о расположении и структуре всех установленных зависимостей. Этот файл позволяет динамически загружать классы по мере необходимости во время выполнения скрипта.
  2. Файл composer.json: Это основной файл конфигурации Composer. В нем определяются все зависимости проекта, включая их названия, версии, исходные репозитории и другие параметры. Кроме того, здесь могут быть указаны скрипты, которые нужно выполнить до или после установки зависимостей.
  3. Файл composer.lock: Этот файл содержит актуальные версии всех установленных зависимостей, включая их зависимости. Он гарантирует, что при повторной установке проекта будут установлены те же версии пакетов, что и при первоначальной установке, что обеспечивает консистентность среды разработки.
  4. Packagist: Это центральный репозиторий пакетов для Composer. Packagist содержит огромное количество библиотек и фреймворков PHP, доступных для установки через Composer. Кроме того, разработчики могут публиковать свои собственные пакеты на Packagist для общего использования.
  5. Команды CLI: Composer предоставляет набор командной строки для управления зависимостями проекта. Некоторые из основных команд включают composer install для установки зависимостей, composer update для обновления зависимостей до их последних версий, composer require для добавления новой зависимости и многие другие.
  6. Поддержка скриптов: Composer позволяет выполнять пользовательские скрипты на различных этапах жизненного цикла проекта. Это может быть полезно, например, для генерации кода, применения миграций базы данных или запуска тестов.
  7. Управление версиями: Composer обеспечивает гибкий механизм управления версиями зависимостей, позволяя указывать ограничения на версии пакетов и использовать различные стратегии разрешения конфликтов при установке зависимостей.

Принцип работы

При загрузке сторонних библиотек Composer генерирует ещё файл composer.lock. Если composer.json - это главный файл Composer, в котором содержится описание основных пакетов, включая требования к их версиям, то composer.lock - это файл, содержащий уже не требования, а реальные версии пакетов, которые им были установлены на компьютер пользователя, некая база данных пакетов.

Например, если вы захотите скопировать проект в какое-то другое место без переноса файла composer.lock, то выполнив в нём команду composer install, вы можете получить другие версии пакетов. Эта может случиться из-за выхода новых версий как основных пакетов, описанных в файле composer.json, так и их зависимостей, зависимостей их зависимостей и т.д. Например, представим что выход новых версий основных пакетов не произошёл, но обновились версии у пакетов, от которых зависят основные пакеты. В результате установки работающего проекта, можем получить неработоспособный, если в какой-нибудь новой версии одного из этих пакетов была допущена ошибка. Поэтому если вы хотите сохранить полностью среду, то при копировании проекта необходимо дополнительно включать в проект файл composer.lock.

Например, разворачивая проект на production, включающий в себя файл «composer.lock», вы получите те же версии зависимостей, которые у вас были при разработке и тестировании.

Установка

На macOs

  1. Перед установкой Composer убедитесь, что на вашей системе установлен PHP версии:
    brew install php
  2. Скачайте установщик Composer с помощью следующей команды:
    brew install composer
  3. Проверьте установку:
    composer --version

На Windows

Необходимо скачать и установить интерпритатор PHP на компьютер и распокавать архив в любую директорию. Далее скачиваем и устанавливаем Composer в директорию с интерпритатором PHP. Чтобы проверить корректность установки Composer, открываем в этой директории терминал и вводим команду composer. По сути мы поместили в директорию с PHP файл composer.phar. И Composer будет доступен только в этой директории.

Для того чтобы установить Composer глобально и иметь доступ к нему из всех директорий, необходимо в папку с PHP установить файл composer.bat. Для этого в терминале в директории с PHP, необходимо ввести команду:
echo @php "%~dp0composer.phar" %*>composer.bat.

На Ubuntu

  1. Перед установкой Composer убедитесь, что на вашей системе установлен PHP версии 7.3 или выше и расширение php-cli. Если PHP не установлен, установите его, выполнив соответствующие команды для вашего дистрибутива.
    sudo apt update
    sudo apt install php-cli
  2. Скачайте установщик Composer с помощью следующей команды:
    php -r "copy('<https://getcomposer.org/installer>', 'composer-setup.php');"
  3. Установите Composer:
    php composer-setup.php
  4. Переместите Composer в системную директорию: После успешной установки переместите файл composer.phar в системную директорию и сделайте его исполняемым:
    sudo mv composer.phar usr/local/bin/composer
    sudo chmod +x /usr/local/bin/composer
  5. Проверьте установку:
    composer --version

Заключение

Composer является неотъемлемым инструментом для PHP-разработчиков, который значительно упрощает управление зависимостями в проектах. Благодаря простой конфигурации, широкой поддержке сообщества и интеграции с крупнейшим репозиторием Packagist.org, Composer обеспечивает быструю и эффективную установку, обновление и управление библиотеками и фреймворками.

🤔 А ты уже используешь Composer?

👇 Напиши в комментариях.

✅ Подписывайся на канал, чтобы не пропустить новые публикации!