Composer — это свободный пакетный менеджер для установки зависимостей и самих модулей PHP. Он разработан Нильсом Адерманом и Хорди Боггиано. С помощью скрипта можно в несколько нажатий установить нужный модуль, а также все его зависимости, например, ZendFramework или Symphony. Он широко используется разработчиками PHP скриптов.
В этой статье мы рассмотрим как установить Composer Ubuntu 18.04 и более поздних версиях, а также как пользоваться утилитой.
Установка Composer в Ubuntu
Вы не можете установить программу из официальных репозиториев. Нужно скачать скрипт из официального сайта и поместить его в папку с вашим проектом. Но сначала обновите систему и установите зависимости:
sudo apt update
sudo apt install curl php-cli php-mbstring git unzip
Установка Composer ubuntu может быть выполнена двумя способами. Либо локально в папку проекта, либо же глобально, для всей системы. Сначала рассмотрим как установить программу локально. Перейдите в папку проекта:
cd /путь/к/папке/
Выполните такую команду для загрузки установочного скрипта:
curl -sS https://getcomposer.org/installer -o composer-setup.php
Затем запустите этот скрипт, чтобы создать файл composet.phar, который и будет использоваться для установки пакетов:
php composer-setup.php
Теперь вы можете проверить работает ли Composer:
php composer.phar
Теперь рассмотрим как установить программу глобально для всей системы. Вы можете скачивать файл установщика в любую папку, например, домашнюю:
curl -sS https://getcomposer.org/installer -o composer-setup.php
Только команда установки будет отличаться, в ней мы указываем папку, куда нужно установить скрипт:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Для проверки работы, вы можете выполнить команду:
composer
Использование Composer
Для того чтобы указать какие пакеты нужно устанавливать используется конфигурационный файл composer.json. В нем сообщаются зависимости вашего проекта, а также их версии. Создайте этот файл в корневой папке вашего проекта. Синтаксис записей очень прост, и если вы раньше имели дело с JSON, то без проблем разберетесь:
{
«require»: {
«производитель/пакет»: «версия»
}
«require-dev»: {
«производитель/пакет»: «версия»
}
}
Секция require отвечает за пакеты, необходимые для работы программы, а require-dev — только за пакеты для разработки. Например, для нашего проекта необходимо установить библиотеку работы с RSS Atom — picofeed. Для этого сначала откройте сайт https://packagist.org и найдите этот пакет:
На его странице вы можете видеть команду composer, которой его можно установить, в ней полное имя, а чуть ниже версию:
Наш файл будет выглядеть вот так:
Для того чтобы установить все пакеты, описанные в файле конфигурации, используйте команду:
php composer.phar install
После установки пакетов composer создает файл autoload.php в папке vendor вашего проекта, с помощью него можно включить в проект все библиотеки, которые были установлены. Для этого достаточно подключить этот файл к проекту с помощью инструкции include или require:
Например, возьмем небольшой пример чтения ленты rss с GitHub:
vi feed.php
require(«vendor/autoload.php»);
use PicoFeedReaderReader;
use PicoFeedPicoFeedException;
try {
$reader = new Reader;
// Return a resource
$resource = $reader->download(‘https://losst.ru/feed/’);
// Return the right parser instance according to the feed format
$parser = $reader->getParser(
$resource->getUrl(),
$resource->getContent(),
$resource->getEncoding()
);
// Return a Feed object
$feed = $parser->execute();
// Print the feed properties with the magic method __toString()
echo $feed;
}
catch (PicoFeedException $e) {
// Do Something…
}
?>
php feed.php
Вы можете управлять зависимостями не только с помощью конфигурационного файла. Composer имеет несколько команд для легкого управления. Чтобы добавить пакет в зависимости проекта используйте команду require:
php composer.phar require picofeed
Пакет сразу же будет установлен. А теперь вы его можете удалить:
php composer.phar remove picofeed
Если версии пакетов устарели, то вы можете их обновить с помощью одной команды:
php composer.phar update