Composer устанавливаем на VMBitrix
27.05.2019
Введение установка Composer на Centos 7 с виртуальной машиной VMBitrix
В данном статье мы рассмотрим, как установить Composer на VMBitrix столкнемся с проблемой в процессе установки и решим ее. А также установим пакет kint-php который очень полезен для любого разработчика. Подключим автозагрузчик autoload.php к нашему проекту на битрикс.
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