BB Components

BB Components — модуль для «1С-Битрикс», который добавляет в платформу слой шаблонов Blade компонентов от Laravel

0.00 ₽

Категория: Метка:

BB Components — модуль для «1С-Битрикс», который добавляет в платформу слой шаблонов Blade. Он даёт две вещи, которых нет в штатном наборе: возможность описать переиспользуемый блок как компонент с параметрами и слотами и возможность собрать страницу сайта на Blade, не меняя её публичный адрес.

На данный момент это альфа версия — бесплатно для первых пользователей. Сделайте заказ чтобы получить ранний доступ.

Обзор: https://wpcraft.ru/blog/blade-components-from-laravel-for-bitrix-cms

Модуль не заменяет Битрикс и не переносит проект на Laravel. Внутри — standalone-движок illuminate/view 12: он рендерит шаблоны, а данные, компоненты, свойства страниц и админка остаются битриксовыми. Из Blade можно вызвать любой штатный компонент через @bxComponent, поэтому большой каталог или корзину не нужно переписывать, чтобы они попали на новую страницу.

Практический результат: повторяющаяся разметка живёт в одном файле, страница описывает только состав и данные, а переезд на Blade идёт по одной странице с возможностью отката.

Сценарии использования

1. Один блок повторяется на десятках страниц

Карточка товара, форма подписки, плашка с акцией или блок контактов существуют в нескольких копиях, и правка расходится по ним с задержкой. Блок выносится в x-components один раз, страницы передают только параметры и содержимое. Смена вёрстки происходит в одном файле.

2. Раздел нужно обновить, не трогая остальной сайт

Переводится одна страница или один раздел: файл кладётся в x-pages по тому же пути, что и текущий URL. Остальные страницы продолжают работать на нативном PHP. Если результат не устроил, x-page удаляется — адрес снова обрабатывает штатная страница.

3. Крупный компонент Битрикса нужен в новой вёрстке

Каталог, корзину, оформление заказа или включаемую область не нужно переписывать: @bxComponent('bitrix:catalog', ...) вставляет их в Blade-страницу как есть. Миграция внутренних шаблонов компонента остаётся отдельной задачей и делается тогда, когда до неё дойдут руки.

4. Нужен новый URL без нового PHP-файла

Достаточно добавить x-pages/<путь>/index.blade.php: модуль при установке регистрирует общее правило в urlrewrite.php, и адрес начинает обслуживаться Blade. Это удобно для промо-страниц, лендингов и служебных разделов.

Когда сценарий не этот

Если задача — поменять один шаблон одного компонента и она закрывается штатной системой шаблонов Битрикса, модуль не нужен. Если нужен готовый набор блоков для контент-менеджера без разработчика — тоже: BB Components работает с файлами в коде.

Ключевые составляющие

X-components

Анонимные Blade-компоненты в /local/x-components/. Отдельный PHP-класс не нужен: файл alert.blade.php сразу становится тегом <x-alert>. Поддерживаются @props с параметрами и значениями по умолчанию, основной и именованный слоты, вложенность через точку — forms/input.blade.php вызывается как <x-forms.input />.

X-pages

Страницы на Blade в /local/x-pages/, повторяющие структуру публичных URL: index.blade.php — главная, about/delivery/index.blade.php — /about/delivery/. Рендерятся на тех же адресах, что и нативные страницы.

Директивы-мосты

@bxComponent(...) вызывает любой компонент Битрикса из Blade-шаблона. @title(...) задаёт заголовок страницы, @pageProperty(...) — её свойства. Связь с платформой не теряется: страница остаётся частью сайта, а не отдельным приложением.

Компонент bb:button

Классический компонент Битрикса, шаблон которого рендерится Blade. Копируется при установке в /local/components/bb/. Показывает, как совместить IncludeComponent, параметры и Blade-разметку в одном компоненте.

Страница настроек

Раздел в админке с путями к каталогам компонентов, страниц и кэша, а также кнопкой очистки скомпилированных шаблонов.

Blade-движок и зависимости

illuminate/view 12 и все PHP-зависимости лежат в vendor/ внутри каталога модуля /local/modules/bb.components/. Composer на целевом сайте не требуется.

Особенности, которые отличают

  • Миграция по одной странице. Нет требования переносить сайт целиком: переводится страница, проверяется, переносится следующая.
  • URL не меняются. Структура x-pages повторяет структуру публичных адресов, поэтому ссылки, SEO-история и закладки остаются прежними.
  • Откат без правок кода. Удаление x-page возвращает страницу на нативный PHP — без обратной миграции и без правки шаблона.
  • Никаких прокси-однострочников. Модуль перехватывает страницу на OnFileRewrite после полной инициализации ядра, поэтому в существующих PHP-файлах ничего менять не нужно, а $USER, авторизация и константы шаблона уже готовы.
  • Мосты вместо замены. Штатные компоненты вызываются из Blade, а не переписываются; можно оставить каталог, корзину и оформление заказа как есть.
  • Автономная установка. Зависимости лежат в vendor/ внутри архива: скопировать каталог и нажать «Установить» в админке. Composer нужен только для пересборки поставки.
  • Прозрачная механика. Исходный код, документация и smoke-тест входят в поставку, поэтому поведение можно проверить до покупки и после установки.

Что входит в поставку

Единица покупки — установочный архив BB Components 0.1.261031:

  • модуль bb.components с установкой через административный раздел;
  • Blade-движок на основе illuminate/view 12;
  • все PHP-зависимости в каталоге vendor/;
  • поддержка анонимных компонентов, параметров, значений по умолчанию, слотов и вложенных компонентов;
  • маршрутизация Blade-страниц из local/x-pages/;
  • директивы @bxComponent, @title, @pageProperty;
  • компонент bb:button с Blade-шаблоном;
  • страница настроек с путями к каталогам и очисткой кэша;
  • инструкция по установке и проверке.

Стоимость: {{ price }} ₽. Лицензия: {{ license_terms }}. Обновления: {{ update_terms }}.

[Перейти к покупке BB Components]({{ purchase_url }})

Кому подходит

  • командам, которые разрабатывают и поддерживают собственные шаблоны на «1С-Битрикс»;
  • тем, кому нужны параметры, слоты и вложенные компоненты в разметке;
  • тем, кто предпочитает постепенную миграцию полной переделке сайта;
  • разработчикам, готовым работать с Blade-файлами в коде, а не только в визуальном редакторе.

Кому не подходит

  • если нужно менять оформление через визуальный редактор без разработчика;
  • если задача — один шаблон одного компонента, и штатных средств Битрикса достаточно;
  • если нужна готовая библиотека дизайна или блоков «из коробки»;
  • если в проекте жёстко зафиксирована другая версия библиотек Laravel и совместная работа не проверена.

Ограничения

  • Визуальный редактор не заменяется. Чистые x-components в нём не отображаются как компоненты Битрикса: редактор работает с нативной страницей, содержимое Blade живёт в x-page.
  • Системные страницы остаются нативными. /auth/ не переносится. Каталог, корзину и оформление заказа можно подключить через мосты, но переписывание их внутренних шаблонов — отдельная задача.
  • Общее правило новых URL зависит от urlrewrite.php. Изменения на странице «Обработка адресов» могут его перезаписать; после таких правок маршрутизацию нужно проверить.
  • Настройки каталогов общие для установки. Отдельных путей x-components и x-pages для разных сайтов в многосайтовой конфигурации в текущей версии нет.
  • Другая версия Illuminate требует проверки. Если в проекте уже загружены библиотеки Laravel другой версии, совместную работу нужно протестировать на копии сайта.
  • Композитный режим не проверялся в версии 0.1.261031: страницы с HTML-кэшем и динамическими зонами требуют отдельной проверки в вашей конфигурации.

Технические требования

  • PHP 8.2 или новее;
  • «1С-Битрикс: Управление сайтом» — проверено на редакции «Бизнес», главный модуль 26.x;
  • Composer — только для сборки vendor/ при разработке поставки, на сайте не нужен;
  • права на запись в /local/ для создания каталогов компонентов, страниц и кэша.

Проверено: рендер, экранирование HTML, параметры и значения по умолчанию, основной и именованный слоты, вложенные компоненты, пользовательские директивы, namespace страниц и контекст ошибок. Дистрибутив дополнительно проверен отдельно от проектного окружения — после распаковки Blade отрендерил шаблон, используя только vendor/ из поставки.

Частые вопросы и ответы

Что именно покупается — модуль или подписка?

Покупается установочный архив версии 0.1.261031. Порядок получения обновлений описан в условиях: {{ update_terms }}.

Нужно ли устанавливать Laravel?

Нет. Используется standalone-компонент illuminate/view, а не приложение Laravel. Зависимости уже в архиве.

Нужен ли Composer на сервере?

Нет. Composer нужен только при пересборке зависимостей для разработки поставки. Для установки достаточно скопировать модуль и запустить установку в админке.

Придётся ли отказаться от компонентов Битрикса?

Нет. @bxComponent вызывает штатный компонент из Blade-шаблона. Существующие компоненты остаются, переносятся только те шаблоны, которые вы запланировали.

Изменятся ли адреса страниц?

Нет. X-pages зеркалят структуру URL, страница переводится на Blade без смены публичного адреса.

Можно ли вернуться к обычным PHP-страницам?

Да. Для отката страницы удалите её x-page. При удалении модуля снимается его регистрация, а созданные каталоги данных и скопированные компоненты остаются — их можно удалить вручную после проверки.

Что будет с сайтом, если модуль отключить?

Нативные страницы продолжат работать как раньше. Страницы, у которых есть только x-page без PHP-файла, перестанут открываться — это новые URL, которых до модуля не существовало.

Подойдёт ли контент-менеджеру без разработчика?

Нет. Создание компонентов и перенос страниц требует работы с PHP- и Blade-файлами. Контент-менеджер может продолжать пользоваться привычными областями и компонентами Битрикса, но первичную настройку делает разработчик.

Работает ли на многосайтовой установке?

Модуль устанавливается на установку целиком: пути к x-components и x-pages общие. Раздельных каталогов под каждый сайт в текущей версии нет.

Совместим ли с композитным режимом?

В версии 0.1.261031 композитный режим не входил в проверку. Для страниц с HTML-кэшем и динамическими зонами нужна отдельная проверка на вашем контуре.

Нужна ли правка существующих PHP-страниц?

Нет. Модуль сам выбирает x-page для URL. Для новых адресов без PHP-файла используется общее правило в urlrewrite.php, которое добавляется при установке.

Что проверять при обновлении Битрикса?

После обновления ядра откройте мигрированные страницы и проверьте: заголовок и метаданные, работу @bxComponent, формы и динамические блоки, а также правило маршрутизации на странице «Обработка адресов».

С чего начать

  1. Развернуть копию сайта или тестовый контур, сделать резервную копию.
  2. Установить модуль и убедиться, что тестовая страница рендерится.
  3. Вынести один повторяющийся блок в x-components.
  4. Перевести одну простую страницу в x-pages и сравнить с нативной.
  5. Расширять библиотеку компонентов по мере переноса разделов.