Введение
Composer — это менеджер зависимостей для PHP.
Composer установит все необходимые пакеты PHP, от которых зависит ваш проект, и будет управлять ими за вас. Он используется во всех современных PHP-фреймворках и платформах, таких как Laravel, Symfony, Drupal и Magento 2.
В этом руководстве показаны шаги по установке Composer на CentOS 8.
Прежде чем продолжить, убедитесь, что вы выполнили следующие требования:
- Зарегистрировался как пользователь с привилегиями sudo.
- В вашей системе CentOS 8 установлен PHP.
Если вы не знаете, как подключиться к серверу через SSH, прочитайте следующее руководство: Как подключиться к VPS-серверу удаленно с помощью SSH с терминала Linux.
Установите Composer на CentOS
Чтобы установить Composer на CentOS 8, выполните следующие действия.
Установите пакет PHP CLI (командная строка) и все остальные зависимости с помощью:
sudo dnf install php-cli php-json php-zip wget nano unzip
После установки интерфейса командной строки PHP загрузите скрипт установки Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Приведенная выше команда загружает файл с именем composer-setup.php
в текущий рабочий каталог.
Проверьте целостность данных, сравнив хэш файла SHA-384
с хэшем, найденным на странице открытых ключей/подписей Composer.
Следующая команда wget
загружает подпись последнего установочного файла Composer со страницы Composer Github и сохраняет ее в переменной с именем HASH
:
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Чтобы убедиться, что сценарий установки не поврежден, выполните следующую команду:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Если хэши совпадают, появится следующее сообщение:
Installer verified
В противном случае, если хэши не совпадают, вы увидите, что Installer corrupt
. После проверки целостности перейдите к следующему шагу.
Выполните следующую команду, чтобы установить Composer в каталог /usr/local/bin
:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Приведенная выше команда устанавливает composer
как системную команду и доступна для всех пользователей. Вывод будет выглядеть так
All settings correct for using Composer
Downloading...
Composer (version 1.10.1) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
Приведенная выше команда устанавливает composer
как системную команду (для всей системы) и доступную для всех пользователей.
Проверьте установку, распечатав версию композитора:
composer -V
Composer version 1.10.1 2020-03-13 20:34:27
На данный момент вы успешно установили Composer в своей системе CentOS и можете начать его использовать.
Установите Composer быстро
Выполните следующие действия, чтобы быстро установить Composer в системе CentOS 8:
Установите PHP CLI и Zip:
sudo dnf install php-cli php-json php-zip curl unzip
Скачать Composer с curl:
curl -sS https://getcomposer.org/installer |php
Переместите файл Composer в каталог /usr/local/bin
:
sudo mv composer.phar /usr/local/bin/composer
Введение в Композитор
Теперь, когда Composer установлен в вашей системе CentOS, мы покажем вам, как использовать Composer в проекте PHP.
Начните с создания корневого каталога проекта с помощью команды mkdir и перейдите к нему с помощью команды cd:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
В этом примере мы будем использовать пакет PHP под названием carbon для создания примера приложения, которое печатает текущее время.
Выполните следующую команду, чтобы инициализировать новый проект Composer и установить пакет углерода:
composer require nesbot/carbon
sing version ^2.32 for nesbot/carbon./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.0.1): Downloading (connecting..Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.15.0): Downloading (100%)
- Installing symfony/translation (v5.0.6): Downloading (100%)
- Installing nesbot/carbon (2.32.1): 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
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Как видно из приведенного выше вывода, Composer создает файл с именем composer.json
и загружает углерод и все его зависимости.
Если вы перечислите каталоги проекта с помощью команды ls, вы увидите, что он содержит два файла composer.json
и composer.lock
, а также каталог vendor
.
ls -l
-rw-r--r--. 1 noviello noviello 60 Mar 30 23:40 composer.json
-rw-r--r--. 1 noviello noviello 11135 Mar 30 23:40 composer.lock
drwxr-xr-x. 6 noviello noviello 4096 Mar 30 23:40 vendor
vendor
— это каталог, в котором хранятся зависимости проекта.- Файл
composer.lock
содержит список всех установленных пакетов, включая их версии. composer.json
— это файл, описывающий ваш проект PHP, включая зависимости PHP и другие метаданные.
Вы можете выполнить поиск пакетов PHP в репозитории Composer Packagist.
Composer имеет возможности автозагрузки, что позволяет использовать классы PHP без необходимости использования операторов require
или include
.
Создайте файл с именем testing.php
:
sudo nano testing.php
Добавьте следующий код:
<?php
require __DIR__. '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Давайте пройдемся по коду строка за строкой.
В первой строке после открытия тега php включаем файл vendor/autoload.php
, который автоматически загружает все библиотеки.
Далее мы создаем псевдоним Carbon\Carbon
as Carbon
. Последняя строка выводит текущее время с помощью метода Carbon now
.
Запустите скрипт, набрав:
php testing.php
Вывод должен выглядеть так:
Now: 2020-03-30 21:58:12
Позже, если вы хотите обновить свои пакеты PHP, вы можете просто запустить:
composer update
Приведенная выше команда проверит наличие более новых версий установленных пакетов, и если будет найдена более новая версия, а ограничение версии соответствует указанному в composer.json
, Composer обновит пакет.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Вывод
Вы узнали, как установить Composer на свой сервер CentOS 8. Мы также показали вам, как использовать Composer для создания базового проекта PHP.
Для получения дополнительной информации о Composer посетите страницу официальной документации Composer.