Установка и использование PHP Composer на CentOS 7

Composer – менеджер зависимостей для PHP (аналогичен npm для Node.js или pip для Python).

Composer соберет все необходимые пакеты PHP, от которых зависит ваш проект, и будет управлять ими за вас. Он используется во всех современных PHP фреймворках и платформах, таких как Laravel, Symfony, Drupal и Magento 2.

В этом матриале мы рассмотрим шаги по установке и использованию PHP Composer на машине с CentOS 7.

Требования

Прежде чем продолжить обучение, убедитесь в том, что вы выполнили следующие условия:

  • Авторизованы как пользователь с привилегиями sudo
  • На Вашем CentOS 7 установлен PHP 7

Установка Composer на CentOS

Следующие шаги описывают установку Composer в системе CentOS 7.

1. Сначала установите пакет PHP CLI (интерфейс командной строки) и все остальные зависимости с помощью:

$ sudo yum install php-cli php-zip wget unzip

2. После установки PHP CLI скачайте скрипт инсталлятора Composer:

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Команда выше скачает файл composer-setup.php в текущий рабочий каталог.

3. Для проверки целостности данных скрипта сравните хэш скрипта SHA-384 с последним хэшем инсталлятора, найденным на странице Composer Public Keys / Signatures.

Следующая команда wget загрузит ожидаемую сигнатуру последнего инсталлятора Composer со страницы Composer’s 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 и дважды проверить значение переменной $HASH с помощью echo $HASH. После того, как программа установки будет проверена, вы можете продолжить следующий шаг.

4. Для установки Composer в каталоге /usr/local/bin выполните следующую команду:

$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Вывод:

All settings correct for using Composer
Downloading...

Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Композер (Composer) устанавливается как общесистемная команда и будет доступен для всех пользователей.

5. Последний шаг – проверка установки:

$ composer

Вышеприведенная команда выведет версию Composer, команды и аргументы.

______
/ ____/___  ____ ___  ____  ____  ________  _____
/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.8.5 2019-04-09 17:46:47

Usage:
    command [options] [arguments]

На данный момент вы успешно установили Composer на вашу систему CentOS.

Если вы хотите, чтобы для каждого проекта был установлен Composer, используйте следующую команду: php composer-setup.php, которая создаст файл с именем composer.phar в вашем текущем рабочем каталоге. Вы можете использовать композер, запустив: ./composer.phar <command>.

Начало работы с Composer

Теперь, когда Composer установлен на вашей CentOS системе, мы покажем вам, как использовать Composer в PHP проекте.

Начните с создания каталога, который будет корневым каталогом проекта и будет содержать файл composer.json.

Файл composer.json описывает ваш PHP проект, включая зависимости PHP и другие метаданные.

Создайте каталог проекта и переключитесь на него:

$ mkdir ~/my-first-composer-project
$ cd ~/my-first-composer-project

В этом примере мы создадим образец приложения, которое будет выводить на печать текущее время с помощью пакета под названием carbon.

Запустите следующую команду, чтобы инициализировать новый проект Composer и установить пакет carbon:

$ composer require nesbot/carbon

Вывод:

Using version ^2.2 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
  - Installing symfony/translation (v4.1.4): Downloading (100%)
  - Installing nesbot/carbon (2.2.0): Downloading (100%)
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

Как видно из вышеприведенного вывода, Composer создаст файл composer.json и загрузит и установит carbon и все его зависимости.

Если вы выведете список каталогов вашего проекта, вы увидите, что он содержит два файла composer.json и composer.lock, а также каталог vendor.

$ ls -l

Вывод:

-rw-r--r-- 1 linuxize users   60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 vendor
  • Каталог vendor – это каталог, в котором хранятся зависимости проекта.
  • В файле composer.lock содержится список всех установленных пакетов, включая их версии.
  • Composer.json описывает проект PHP и все зависимости PHP.
Пакеты PHP для проекта вы можете найти в репозитории Composer Packagist.

Composer предоставляет возможности автозагрузки, которые позволяют использовать PHP-классы без необходимости использования требуемых (require) или включаемых (include) файлов.

Создайте файл с именем 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: 2018-09-26 20:08:18

Позже, если вы захотите обновить ваши пакеты PHP, вы можете просто запустить:

$ composer update

Команда выше проверит наличие более новых версий установленных пакетов, и если найдена более новая версия и ограничение по версии совпадает с версией, указанной в файле composer.json, Composer обновит пакет.

Вы научились устанавливать Composer на вашу машину CentOS 7. Мы также показали вам, как использовать Composer для создания базового PHP-проекта.

Чтобы найти больше информации о Composer, посетите официальную страницу документации Composer.

Если у вас есть вопросы, пожалуйста, оставьте комментарий ниже.

Наверх ↑

Сергей Ермилов

Создаю веб-проекты, придумываю идеи, занимаюсь разработкой, оптимизирую и продвигаю сайты. Первые шаги в этом направлении были сделаны в 2008 году. Если у вас есть какие-то идеи или вы хотите что-то предложить, то пишите мне и моей команде.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>