Composer - это инструмент для управления зависимостями в PHP-проектах. Он позволяет вам легко добавлять, обновлять и управлять библиотеками и пакетами, необходимыми для вашего проекта. В этой статье мы рассмотрим, как использовать Composer в среде CMS Bitrix для управления зависимостями и улучшения процесса разработки.
Использование Composer в Bitrix предоставляет несколько преимуществ:
Первым шагом является установка Composer на вашем сервере. Вы можете скачать его с официального сайта Composer. После установки убедитесь, что команда composer доступна в командной строке.
После установки Вам потребуется инициализировать composer
. Лучше всего это делать в папке /local/ (если такой папки в корне у Вас нет - требуется ее создать).
Запускаем консоль (SHH). Переходим в папку следующей командой и запускаем инициализацию:
cd /путь/до/вашего/битрикса/local/
composer init
Проходим все шаги инициализации. После чего в папке local появится файл composer.json.
Если у Вас есть необходимость создавать и использовать собственные namespace и классы - требуется создать папку, в которую composer будет обращаться через autoload.
Например, в папке local
создать еще одну папку src
.
Ваш файл composer.json
должен выглядеть примерно так:
{
"type": "project",
"authors": [
{
"name": "Skillline",
"email": "noreply@skillline.ru",
"homepage": "https://skillline.ru"
}
],
"autoload": {
"psr-4": {
"App\\": "./src/"
}
},
"minimum-stability": "stable",
"require": {
"ext-json": "*",
}
}
В данном примере для папки src
мы будем использовать namespace App
.
Что бы Битрикс начал воспринимать установленные библиотеки, потребуется подключить autoload в файле /php_interface/init.php
(данный файл и папку так же можно создать в папке local, Битрикс автоматически его подключит).
Пример файла init.php
с подключением composer
:
<?php
/**
* Подключение composer
*/require __DIR__ . '/../vendor/autoload.php';
После всех вышеперечисленных манипуляций функционал composer подключен и работает.
Для тестирование, в папке ./local/src/
создайте файл Test.php
со следующим содержимым:
<?php
namespace App;
class Test
{
private string $text;
public function __construct() {
$this->text = 'Hello world!';
}
public function showText() {
echo $this->text;
}
}
И в любом файле, где подключен prolog
или header
, используем:
<?php
use App\Test;
$test = new Test();
$test->showText();
После обновления страницы в браузере должно быть выведено "Hello world!".
Это пример с использованием собственных классов. Так же у Вас появилась возможность установить публичные библиотеки. Для этого Вам потребуется вернуться в консоль:
cd /путь/до/вашего/битрикса/local/
И попробуем установить тестовую библиотеку:composer require monolog/monolog
composer require monolog/monolog
После установки, убедитесь что autoload обновился. Вы можете увидеть новую зависимость в папке vendor
.
Теперь, чтобы использовать библиотеку, в любом месте вашего проекта, вы можете использовать следующий код:
<?php
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// создание объекта
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
// добавление записей
$log->warning('Hello');
$log->error('world!');
Этот пример показывает, как использовать библиотеку Monolog для записи логов в файл. Вы можете использовать любую другую библиотеку, которую вы установили через Composer, в своем проекте.
Использование Composer в Bitrix упрощает управление зависимостями и облегчает разработку веб-приложений. Он позволяет добавлять и обновлять библиотеки и пакеты, необходимые для вашего проекта, а также упрощает подключение классов из зависимостей. Начните использовать Composer в вашем проекте Bitrix, чтобы улучшить его структуру и обеспечить более эффективную разработку.
Напишите нам и мы свяжемся с вами сразу после ознакомления с запросом (в рабочее время ~10 минут ожидания)