Composer устанавливаем на VMBitrix
Введение установка Composer на Centos с виртуальной машиной VMBitrix
Composer и Bitrix
Composer — это инструмент для управления зависимостями в PHP. Он позволяет вам объявлять библиотеки, от которых зависит ваш проект, и будет управлять (устанавливать / обновлять) их за вас.
Управление зависимостями
Composer не является менеджером пакетов в том же смысле, что и Yum или Apt. Да, он имеет дело с «пакетами» или библиотеками, но управляет ими отдельно для каждого проекта, устанавливая их в каталоге (например, вендоре) внутри вашего проекта. По умолчанию он ничего не устанавливает глобально. Простыми словами — это менеджер зависимостей.
Централизованное управление пакетами идея не новая, и разработчики Composer были вдохновлены пакетным менеджером npm. Предположим, что у вас есть проект, который зависит от ряда библиотек. Некоторые из этих библиотек зависят от других библиотек. Composer:
- - Позволяет вам объявить библиотеки, от которых зависит ваш проект.
- - Выясняет, какие версии каких пакетов можно и нужно устанавливать, и устанавливает их (то есть загружает их в ваш проект).
- - Вы можете обновить все свои зависимости выполнив одну команду.
Установка Composer на Виртуальную машину VMBitrix
Подключаясь к своему серверу по SSH после авторизации вас встречает скрипт меню, для выхода из данного меню в командной строке передадим значение 0. Далее нам нужно перейти в корневую папку с нашим проектом для этого введем следующую команду:
cd /home/bitrix/
Зависимости, а также файлы, необходимые для работы Composer находятся в служебной папке vendor, вручную данную папку создавать не нужно, Composer создаст ее автоматически. Папку vendor лучше всего хранить на сервере на уровень выше, чем расположены все файлы вашего проекта, предназначенные для публичного использования.
Итак, приступим непосредственно к установке, для этого выполним следующие команды:
cd /home/bitrix/ //переместимся в папку с нашим проектом
mkdir tmp //создадим временную папку для скачивания пакета
curl -sS https://getcomposer.org/installer | php //скачиваем себе на сервер пакет установки Composer
В моем случае при попытке установить возникла следующая ошибка:
Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:
The json extension is missing.
Install it or recompile php without --disable-phar
Это означает что расширение phar не включено на нашем сервере, давайте включим его, отредактировав конфигурацию php-расширений:
nano /etc/php.d/20-phar.ini
Добавить в наш файл следующую строку:
extension = phar.so
После этого запустим установку еще раз, в результате в папке tmp мы увидим файл phar.php выполним команду ls и убедимся в этом. Для того чтобы команда composer действовала глобально на нашем сервере, давайте перенесем данный файл в директорию /usr/local/bin/ для этого выполним команду:
mv composer.phar /usr/local/bin/composer
И удалим папку tmp которую мы создавали временно, для нашего удобства. Выполнив команду:
rm -R tmp
Далее для проверки установки выполним следующую команду:
composer
Все готово, composer установлен на VMBitrix. Ура у нас получилось!
Установка пакетов используя composer на bitrix
Давайте далее установим для примера один пакет kint-php, перед этим нужно проинициализировать наш проект для этого выполним следующую команду:
composer init
В результате нам будет задано некоторое количество вопросов, исходя из которых в папке нашего проекта создастся файл composer.json в котором будет вся служебная информация о данном проекте, о зависимостях авторе и тд.
После чего можем приступить к установке пакета, для этого выполним следующую команду:
composer require kint-php/kint –dev
Давайте подключим к нашему проекту автозагрузчик, для этого в файле /home/bitrix/www/bitrix/php_interface/init.php добавим следующее (подробнее о файле init.php вы можете почитать в следующей статье «init.php в битрикс»):
require "/home/bitrix/vendor/autoload.php";
Теперь проверим как работает установленный пакет в любом месте нашего проекта давайте вызовем метод Kint::dump и передадим в него два объекта $GLOBALS и $_SERVER:
Kint::dump($GLOBALS, $_SERVER); // более длинная запись
d($GLOBALS, $_SERVER); // или более короткая результат будет один и то же
В итоге мы получим очень удобный вывод наших объектов с подробным описанием переменных и вложенностью. На этом все, мы справились с установкой и решили возникшие проблемы во время установки composer.