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 update sudo 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 в своем терминале.
- Чтобы установить 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, загружает и устанавливает carbon и все его зависимости.
Если вы перечисляете директорию вашего проекта с командой ls, вы увидите что он содержит два файла composer.json и composer.lock, каталог vendor.
ls -l
-rw-r--r-- 1 andreyex users 60 Aug 18 20:02 composer.json -rw-r--r-- 1 andreyex users 6851 Aug 18 20:02 composer.lock drwxr-xr-x 5 andreyex users 4096 Aug 18 20:02 vendor
- vendor – каталог, в котором хранятся зависимости проекта.
- composer.lock – файл, содержащий список всех установленных пакетов, включая версию пакетов.
- composer.json – файл с описанием PHP-проекта и всех PHP-зависимостей.
Composer предоставляет возможности автозагрузки, которые позволяют использовать классы PHP без необходимости файлов require или include.
Создайте файл с именем testing.php и вставьте следующий код:
<?php require __DIR__ . '/vendor/autoload.php'; use Carbon\Carbon; printf("Сейчас: %s", Carbon::now());
Давайте проанализируем код построчно.
В первой строке после открывающего тега php мы включаем файл vendor/autoload.php, который был автоматически сгенерирован Composer. Этот файл автоматически загрузит все необходимые библиотеки.
Далее, мы меняем Carbon\Carbon как Carbon и в последней строке мы печатаем текущее время с помощью команды now.
Запустите сценарий, набрав:
php testing.php
Результат должен выглядеть примерно так:
Сейчас: 2020-08-18 20:08:45
Позже, если вам потребуется обновить пакеты проекта, введите:
composer update
Приведенная выше команда проверит наличие более новых версий установленных пакетов, и если будет обнаружена более новая версия и ограничение версии совпадает с ограничением, указанным в composer.json, Composer обновит пакет.
Вывод
Мы показали вам, как установить Composer в Debian 10 и как использовать его для создания базового проекта PHP.
Для получения дополнительной информации о Composer посетите официальную страницу документации .
Если у вас есть вопросы, оставьте комментарий ниже.