Composer — это менеджер зависимостей для PHP. Composer будет использовать все необходимые пакеты PHP, от которых зависит ваш проект и управление ими.
В этой статье мы покажем вам, как установить и использовать Composer на сервере Ubuntu 18.04.
Хотя эта статья написана для Ubuntu 18.04, те же самые шаги можно использовать для Ubuntu 16.04.
Прежде чем продолжить эту статью, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo, и у вас установлен PHP на вашей системе Ubuntu 18.04.
Чтобы установить Composer в вашу систему Ubuntu, выполните следующие действия:
sudo apt install php-cli
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Приведенная выше команда загрузит файл composer-setup.php
в текущий рабочий каталог.
SHA-384
с последним хешем установщика, найденным на странице « Публичные ключи/подписи Composer». Мы будем использовать следующую команду wget, чтобы загрузить ожидаемую подпись последнего установщика Composer со страницы Github Composer и сохранить ее в переменной с именем 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
. Как только программа установки будет проверена, вы можете продолжить следующий шаг.
/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.7.2) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
composer
устанавливается как общесистемная команда, и он будет доступен для всех пользователей.
composer
Вышеприведенная команда напечатает версию, команды и аргументы Composer.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.7.2 2018-08-16 16:57:12 Usage: command [options] [arguments]
Если вы хотите установить Composer для каждого проекта, используйте следующую команду, php composer-setup.php
, которая создаст файл composer.phar
, указанный в вашем текущем рабочем каталоге. Вы можете использовать Composer, запустив./composer.phar <command>.
Теперь, когда Composer установлен в вашей системе Ubuntu, мы покажем вам, как использовать Composer в проекте PHP.
Первый шаг — создать каталог, который будет корневым каталогом проекта и удерживать файл composer.json
. Этот файл описывает ваш проект PHP, включая зависимости PHP и другие метаданные.
Создайте каталог проекта и переключитесь на него с помощью:
mkdir ~/my-first-composer-project cd ~/my-first-composer-project
Следующим шагом будет инициализация нового composer.json
с помощью команды composer require <package name>
и определение пакета, который мы хотим загрузить.
В этом примере мы создадим пример приложения, которое будет печатать текущее время с помощью пакета под названием carbon.
Выполните следующую команду для инициализации нового composer.json
и установки пакета Carbon:
composer require nesbot/carbon
Using version ^1.33 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 (1.33.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 02 14:04 composer.json -rw-r--r-- 1 linuxize users 6.8K Aug 02 14:04 composer.lock drwxr-xr-x 5 linuxize users 4.0K Aug 02 14:04 vendor
vendor
, в котором зависимости проекта сохраняется.composer.lock
содержит список всех установленных пакетов , в том числе точных версий пакетов.composer.json
PHP-проекта и всех зависимостей PHP.Вы можете поискать репозиторий Composer Packagist для пакетов 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
Carbon.
Запустите скрипт, набрав:
php testing.php
Результат должен выглядеть примерно так:
Текущее время: 2018-08-02 14:25:05
Позже, если вы хотите обновить свои пакеты PHP, вы можете просто запустить:
composer update
В приведенной выше команде будет проверяться более новые версии установленных пакетов, и если будет найдена более новая версия и ограничение версии совпадает с указанным в ней composer.json
, Composer обновит пакет.
Вы узнали, как установить Composer на ваш компьютер Ubuntu 18.04. Мы также показали вам, как использовать Composer для создания базового PHP-проекта.
Чтобы найти дополнительную информацию о Composer, посетите официальную страницу документации Composer.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.
Как обновить composer, если это phar-версия и «composer self-update» не сработает?