Язык программирования 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.