Полный цикл в digital

Composer в Битрикс с автозагрузкой своих классов и библиотек

В Битриксе последних версий уже есть composer. Есть особенности, файл composer.json в Битриксе называется composer-bx.json и лежит он в системной папке bitrix. В папке bitrix есть еще файл composer.json.example, его положили для примера. В итоге для Битрикс будет два файла, смержиных через плагин Composer Merge Plugin.

Для удобства файл composer.json лучше расположить в папке /local/:

local/composer.json{
    "name": "vadik/hmarketing",
    "autoload": {
        "psr-4": {
            "Сomposer\\Hmarketing\\": "php_interface/classes/"
        }
    },
    "authors": [
        {
            "name": "hmarketing",
            "email": "info@hmarketing.ru"
        }
    ],
    "require": {
        "wikimedia/composer-merge-plugin": "dev-master"
    },
    "config": {
        "vendor-dir": "vendor",
        "allow-plugins": {
            "wikimedia/composer-merge-plugin": true
        }
    },
    "extra": {
        "merge-plugin": {
            "require": [
                "../bitrix/composer-bx.json"
            ]
        }
    }
}

Для полноценной работы Bitrix CLI, нужно внести корректировки в файл bitrix/.settings.php. По умолчанию, система ожидает увидеть наш файл composer.json в папке /bitrix/, мы его расположили в папке /local/, чтобы сменить путь, пропишем в файле bitrix/.settings.php:

bitrix/.settings.php'composer' => [
    'value' => ['config_path' => '/local/composer.json']
],

Подключим файл autoload.php в init.php, чтобы Битрикс увидел наши созданные классы и подключенные библиотеки:

local/php_interface/init.phpif (file_exists($_SERVER["DOCUMENT_ROOT"]."/local/vendor/autoload.php")) {
    require_once($_SERVER["DOCUMENT_ROOT"] . "/local/vendor/autoload.php");
}

После всех вышеперечисленных манипуляций функционал composer подключен и работает.

Автозагрузка собственных классов

Для тестирование, в папке local/php_interface/classes/ создайте файл Test.php со следующим содержимым:

local/php_interface/classes/Test.php<?php

namespace Сomposer\Hmarketing;

class Test {
    private string $text;

    public function __construct() {
        $this->text = 'Hello world!';
    }

    public function showText() {
        echo $this->text;
    }
}

В любом файле, где подключен prolog или header, используем:

use Сomposer\Hmarketing\Test;

$test = new Test();
$test->showText();

После обновления страницы в браузере должно быть выведено Hello world!.

Установка библиотек

Теперь, у вас появилась возможность устанавливать публичные библиотеки. Для этого вам потребуется вернуться в консоль и зайти в директорию local, находясь в директории local установим библиотеку для типографа, выполнив команду:

composer require hmarketing/tipograf

После установки, вы сможете увидеть новую зависимость в папке vendor. Теперь, чтобы использовать библиотеку, в любом месте вашего проекта, вы можете использовать следующий код:

<?php

$html = "<div>HTML-код, который надо оттипографить</div>";

// опции здесь опциональны и приведены для примера
$options = [
    'OptAlign.all'=>'off',
    //'Etc.split_number_to_triads'=>'off',
    'Text.paragraphs'=>'off',
    'Space.bracket_fix'=>'off',
];

$html = EMT\EMTypograph::fast_apply($html,$options);
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг