Composer — это менеджер зависимостей для PHP (похожий на npm для Node.js или pip для Python).
Composer подтянет все необходимые пакеты PHP, от которых зависит ваш проект, и будет управлять ими за вас. Он используется во всех современных PHP-фреймворках и платформах, таких как Laravel, Symfony, Drupal и Magento.
В этой статье объясняется, как установить Composer в системах Debian 10. Мы также расскажем, как использовать Composer для создания проектов PHP и управления ими.
Установка Composer на Debian
Перед установкой Composer убедитесь, что в вашей системе Debian установлены все необходимые пакеты:
apt update
apt install wget php-cli php-zip unzip
Composer предлагает установщик, написанный на PHP, который мы будем использовать для установки Composer.
Загрузите установщик с помощью wget:
wget -O composer-setup.php https://getcomposer.org/installer
Приведенная выше команда сохранит файл как composer-setup.php в текущем рабочем каталоге.
Composer — это CLI-приложение с одним файлом, которое можно установить глобально или как часть проекта. Для глобальной установки требуются привилегии sudo.
Чтобы установить Composer глобально как общесистемную команду, которая будет доступна для всех пользователей, просто поместите файл в каталог, который находится в системном PATH. Следующая команда устанавливает Composer в каталог /usr/local/bin:
# php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Вывод
All settings correct for using Composer
Downloading...
Composer (version 1.10.10) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
Теперь вы можете использовать Composer, запустив composer в своем терминале.
Чтобы установить Composer локально, загрузите файл в корневой каталог вашего проекта:
php composer-setup.php --install-dir=/path/to/project
Эта команда загрузит файл с именем composer.phar. Чтобы использовать Composer, перейдите в каталог проекта и запустите php composer.phar.
Когда доступна новая версия Composer, вы можете обновить установку с помощью следующей команды:
composer self-update
Начало работы с Composer
Теперь, когда Composer установлен в вашей системе Debian, мы покажем вам, как создать проект PHP.
Начните с создания каталога, который будет корнем проекта и содержит файл composer.json. Этот файл описывает ваш проект PHP, включая зависимости PHP и другие метаданные.
Выполните следующие команды, чтобы создать каталог проекта и переключиться на него с помощью:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
Далее мы инициализируем новый файл composer.json с помощью команды composer require и укажем пакет, который хотим загрузить. В этом примере мы создадим пример приложения, которое будет печатать текущее время, используя пакет с именем carbon.
Выполните следующую команду, чтобы инициализировать новый файл composer.json и установить пакет carbon:
composer require nesbot/carbon
Вывод
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.1.3): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.18.1): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.18.1): Downloading (100%)
- Installing symfony/translation (v5.1.3): Downloading (100%)
- Installing nesbot/carbon (2.38.0): Downloading (100%)
symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more
Как показано в выходных данных, Composer создает файл composer.json, загружает и устанавливает carbon и все его зависимости.
Если вы укажете каталог своего проекта с помощью ls , вы увидите, что он содержит два файла composer.json и composer.lock, а также каталог поставщика.
ls -l
Вывод
-rw-r--r-- 1 linuxize users 60 Aug 17 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Aug 17 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Aug 17 21:02 vendor
- vendor — каталог, в котором хранятся зависимости проекта.
- composer.lock — файл, содержащий список всех установленных пакетов, включая версии пакетов.
- composer.json — файл, описывающий проект PHP и все зависимости PHP.
Вы можете выполнить поиск пакетов PHP в репозитории Composer Packagist.
Composer предоставляет возможности автозагрузки, которые позволяют вам использовать классы PHP без необходимости запрашивать или включать файлы.
Создайте файл с именем testing.php и вставьте следующий код:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Давайте проанализируем код построчно
В первой строке после открывающего тега php мы включаем файл vendor/autoload.php, автоматически сгенерированный Composer. Этот файл автоматически загрузит все необходимые библиотеки.
Затем мы используем псевдоним Carbon\Carbon как Carbon, а в последней строке мы печатаем текущее время, используя метод Carbon now.
Запустите скрипт, набрав:
php testing.php
Вывод должен выглядеть примерно так:
Now: 2020-08-17 21:08:45
Позже, если вам нужно обновить пакеты проекта, введите:
composer update
Приведенная выше команда проверит наличие более новых версий установленных пакетов, и если будет найдена более новая версия и ограничение версии совпадает с указанным в composer.json, Composer обновит пакет.
Заключение
Мы показали вам, как установить Composer на Debian 10 и как использовать его для создания базового проекта PHP.
Для получения дополнительной информации о Composer посетите страницу официальной документации.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.