Composer - это свободный пакетный менеджер для установки зависимостей и самих пакетов PHP. Он разработан Нильсом Адерманом и Хорди Боггиано. С помощью скрипта можно в несколько нажатий установить нужный пакет, а также все его зависимости, например, ZendFramework или Symfony. Он широко используется разработчиками PHP скриптов.
В этой статье мы рассмотрим как установить Composer Ubuntu 20.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. Сначала нужно его инициализировать в папке проекта. Для этого выполните:
composer init
Затем ответьте на вопросы программы. Можно оставить ответы по умолчанию. В файле сообщаются зависимости вашего проекта, а также их версии. Создайте этот файл в корневой папке вашего проекта. Синтаксис записей очень прост, и если вы раньше имели дело с JSON, то без проблем разберетесь:
{
"require": {
"производитель/пакет": "версия"
}
"require-dev": {
"производитель/пакет": "версия"
}
}
Секция require отвечает за пакеты, необходимые для работы программы, а require-dev - только за пакеты для разработки. Например, для проекта необходимо установить библиотеку работы с RSS Atom - picofeed. Для этого сначала откройте сайт https://packagist.org и найдите этот пакет:
На его странице вы можете видеть команду composer, которой его можно установить, в ней полное имя, а чуть ниже последнюю версию.
Для установки пакета выполните команду со страницы:
composer require p3k/picofeed
После установки пакет появится в секции require. Если во время установки вы получаете ошибку, например, такую:
Это означает, что пакету не хватает каких-либо зависимостей или возникли конфликты с уже установленными пакетами. В данном случае не хватает расширения PHP Dom. Вы можете установить его командой:
sudo apt install php-dom
Для того чтобы установить все пакеты, описанные в файле конфигурации, используйте команду:
composer install
После установки пакетов composer создает файл autoload.php в папке vendor вашего проекта, с помощью него можно включить в проект все библиотеки, которые были установлены. Для этого достаточно подключить этот файл к проекту с помощью инструкции include или require:
Например, возьмем небольшой пример чтения ленты rss с GitHub:
vi feed.php
<?php
require("vendor/autoload.php");
use PicoFeed\Reader\Reader;
use PicoFeed\PicoFeedException;
try {
$reader = new Reader;
// Return a resource
$resource = $reader->download('https://losst.pro/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 remove picofeed
Если версии пакетов устарели, то вы можете их обновить с помощью одной команды:
composer update
Выводы
В этой небольшой статье мы рассмотрели как выполняется установка Composer Ubuntu 20.04 и 18.04, а также как использовать эту утилиту в своем проекте для разрешения зависимостей. Это очень удобно, когда вы можете один раз указать нужные пакеты и больше не заботиться об их установке и обновлении на других машинах.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали














Не могу обновить до 2 и выше версий. Изначально как стала 1.10 и все. Посоветуйте, что можно сделать, или что я делаю не так?
Вот это точно не помогает, и пишет отсутствует "composer-setup.php": sudo php composer-setup.php --install-dir=/usr/bin --filename=composer