Как установить и использовать PHP Composer в Debian 10

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

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

В этой статье объясняется, как установить Composer в системах Debian 10. Мы также расскажем, как использовать Composer для создания проектов PHP и управления ими.

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

Перед установкой Composer убедитесь, что в вашей системе Debian установлены все необходимые пакеты:

sudo apt updatesudo 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 :

     sudo 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 в своем терминале.

  • Чтобы установить композитор локально, загрузите файл в корневой каталог вашего проекта:

     sudo php composer-setup.php --install-dir=/path/to/project

    Это загрузит файл с именем composer.phar . Чтобы использовать Composer, перейдите в каталог проекта и запустите php composer.phar

Когда доступна новая версия Composer, вы можете обновить установку, используя следующую команду:

sudo composer self-update  

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

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

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

Выполните следующие команды, чтобы создать каталог проекта и переключиться на него с помощью:

mkdir ~/my-first-composer-projectcd ~/my-first-composer-project

Затем мы инициализируем новый файл composer.json с помощью команды composer require <package name> и укажем пакет, который мы хотим загрузить. В этом примере мы создадим образец приложения, которое будет печатать текущее время, используя пакет с именем 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 загружает и устанавливает углерод и все его зависимости.

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

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 без необходимости require или include файлы.

Создайте файл с именем testing.php и вставьте следующий код:

<?php

require __DIR__ . '/vendor/autoload.php';

use CarbonCarbon;

printf("Now: %s", Carbon::now());

Давайте проанализируем код построчно.

В первой строке после открывающего тега php мы vendor/autoload.php файл vendor/autoload.php который был автоматически сгенерирован Composer. Этот файл автоматически загрузит все необходимые библиотеки.

Затем мы применяем псевдоним CarbonCarbon как Carbon , и в последней строке мы печатаем текущее время, используя метод Carbon now .

Запустите сценарий, набрав:

php testing.php

Результат должен выглядеть примерно так:

Now: 2020-08-17 21:08:45

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

composer update

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

Выводы

Мы показали вам, как установить Composer в Debian 10 и как использовать его для создания базового проекта PHP.

Для получения дополнительной информации о Composer посетите официальную страницу документации .

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

Оставьте комментарий