Composer часть 1. Зачем его использовать в PHP проектах и как с ним работать?

Composer часть 1. Зачем его использовать в PHP проектах и как с ним работать?

  • 2 февраля, 2022
  • читать 10 мин
Денис Розганяев
Денис Розганяев Software Engineer в Mobilunity, Преподаватель Компьютерной школы Hillel.

Язык программирования PHP стремительно развивается с каждым годом. Каждый месяц регистрируют десятки, а то и сотни библиотек для работы с PHP проектами. На сайте packagist указано, что с 2012 года было зарегистрировано более 330 тысяч библиотек. Буквально несколько запущенных команд в терминале — и любая из этих библиотек уже подключена к вашему проекту.

Звучит заманчиво, правда? И всё же, как это реализовать?

Именно Composer поможет справиться вам с такой задачей!

Composer PHP что это и как с ним работать?

Итак, Composer — менеджер пакетов для PHP. Этот инструмент позволяет не только устанавливать сторонние пакеты, но и обновлять их при выходе более новых версий. Также с помощью Composer можно легко создавать пакеты для своих библиотек.

Как установить Composer на хостинг

Composer можно установить локально, в директории проекта, или глобально. Установив Composer глобально, его можно использовать в любом проекте.

Подробную инструкцию по скачиванию инсталлятора можно прочитать по этой ссылке. После скачивания файла установки можем приступить к установке Composer.

Установка — Linux/Unix/macOS

Локально

После правильной загрузки и установки инсталлятора в директории проекта появится файл ‘composer.phar’.

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

php composer.phar

Глобально

Для того, чтобы сделать Composer глобальным и вызывать его из любой директории, достаточно выполнить команду в терминале:

mv composer.phar /usr/local/bin/composer

Теперь запустите composer, чтобы запустить менеджер пакетов вместо php composer.phar.

Установка — Windows

Для того, чтобы установить Composer глобально для ОС Windows, надо выполнить следующие шаги:

Создайте новый composer.bat файл рядом с composer.phar:

Используя cmd.exe:

C:\bin> echo @php "%~dp0composer.phar" %*>composer.bat

Используя PowerShell:

PS C:\bin> Set-Content composer.bat '@php "%~dp0composer.phar" %*'

Добавьте каталог в переменную среды PATH, если это еще не сделано. Для получения информации об изменении переменной PATH, смотрите эту статью.

Закройте текущий терминал. В новом окне терминала введите следующую команду для проверки работы Composer:

C:\Users\username>composer -V
Composer version 2.0.12 2021-04-01 10:14:59

Синтаксис и опции Composer

Первое, что необходимо сказать, Composer — это консольная утилита, у неё нет графического интерфейса, однако это не делает её хуже. Её синтаксис довольно прост, а посмотреть все опции и команды можно введя команду ‘composer’ в терминале. Список всех опций и команд можно рассмотреть ниже:

Самые полезные:

  • -h — вывести справку по утилите

  • -q — сокращённый вариант вывода

  • -V — показать версию утилиты

  • -n — не задавать интерактивные вопросы

  • -v, -vv, -vvv — настройка подробности вывода

  • -d — использовать указанную рабочую директорию

Список часто используемых команд:

  • archive — архивирует текущий проект в качестве библиотеки для отправки в сеть

  • check-platform-reqs — проверяет, соблюдены ли системные требования

  • create-project — создаёт проект на основе пакета в указанную директорию

  • depends — выводит зависимости пакета

  • dump-autoload — обновляет систему автозагрузки классов

  • exec — позволяет выполнять скрипты из установленных пакетов

  • init — создаёт пустой проект в текущей папке

  • list — выводит список доступных команд

  • outdated — выводит список пакетов, для которых есть обновления

  • prohibits — выводит названия пакетов, которые мешают установить указанный пакет

  • search — поиск пакетов в репозиториях

  • self-update — обновление Composer до последней версии, работает только при локальной установке

  • show — информация о пакете

  • update — обновляет все пакеты до самой актуальной версии

Установка проекта на основе пакета

Скорее всего, для будущих проектов, вы будете использовать фреймворки, чтобы иметь базовый функционал из коробки. В таких случаях вам понадобится разворачивать проект на основе существующего пакета, Composer скачает пакет из репозитория и просто распакует его в нужную вам директорию.

Для этого используйте команду create-project, например:

composer create-project laravel/laravel app_dir

где:

  • composer — обращение к утилите

  • create-project — команда

  • laravel/laravel — пакет фреймворка laravel

  • app_dir — директория, в которую Composer распакует указанный пакет

Установка пакетов

Чтобы установить пакет с помощью Composer, необходимо использовать команду require. Утилита установит указанный вами пакет и запишет его в файл composer.json.

Например, установим пакет для удобного вывода переменных:

composer  require  larapack/dd

Также можно указать опцию --dev перед написанием названия пакета, чтобы пакет был обязателен, но использовался только в разработке.

Все доступные пакеты можно просмотреть на сервисе Packagist.

Обновление пакетов

Пакеты необходимо обновлять во избежание уязвимостей в проектах и устранения старых проблем со стороны подключенных библиотек.

Для обновления всех пакетов достаточно ввести команду update:

composer  update

или

composer  update –dev

Удаление пакетов

Для удаления пакета необходимо ввести команду remove и указать нужный пакет, также можно добавить опцию –dev, если это пакет для разработчиков.

composer  remove  larapack/dd

Также можно убрать ненужные пакеты в файле composer.json и запустить команду на обновление.

Сброс автозагрузки

Composer из коробки может выступать в роли автозагрузчика классов. Он использует стандарт PSR-4. Иногда случается, что классы закешировались, и новый класс не виден в проекте.

В таких случаях необходимо выполнить команду сброса:

composer  dump-autoload

или

composer  du

Выводы

Composer — это достаточно мощная утилита для того, чтобы сделать вашу работу с проектом комфортной. С её помощью вы легко сможете добавлять, обновлять и удалять необходимые вам пакеты. Также приятным бонусом является то, что утилита предоставляет автозагрузчик классов из коробки.

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

Рекомендуем публикацию по теме

Нажимай и выигрывай от
1 000 до 5 000 ₴