Полезные инструменты для тех, кто в одной лодке с Bitrix

Александр П.
1С Битрикс: Управление сайтом (БУС) - CMS №1 в России по версии портала “Рейтинг Рунета” за 2018 год. На рынке c 2003 года. За это время БУС не стоял на месте, обрастал новой функциональностью, совершенствовал существующую. БУС обладает всем необходимым для разработки веб-сайтов: от обширного набора API для разработчиков: запросы к БД, ORM, HTTP клиент, CSV и XML парсер, и т.д., до многофункционального административного интерфейса, интеграции с 1С: Предприятие, инструментов аналитики, конструктора сайтов и другого.

Хотя новые инструменты и возможности появляются, происходит это не так быстро, как хотелось бы разработчикам. К тому же, некоторые новые возможности БУС не предназначены для разработчиков. Совокупность этих факторов заставляет разработчиков придумывать собственные решения, публиковать их и пользоваться. Для таких расширений у компании 1С есть площадка 1С Битрикс: Маркетплейс, но в этой статье они не рассматриваются.

Инструменты, которые будут рассмотрены в этой статье, были найдены в рамках решения конкретных проблем разработки под Битрикс. С этими проблемами Битрикс разработчики сталкиваются каждый день. Некоторые мы решаем, с некоторыми - смирились. Вот лишь некоторые их них:
  • отсутствие исчерпывающей официальной документации вынуждает нас искать альтернативные источники информации;
  • неадаптированность IDE к работе с Битрикс нет подсказок и автокомплита для методов, переходов по коду и сущностям Битрикс. IDE ругается на неизвестные переменные $arResult, $arParams, $APPLICATION, с которыми разработчик сталкивается каждый день;
  • сложность реализации кастомных административных страниц. Типичная административная страница представляет собой полотно из тысяч строк кода;
  • отсутствие встроенного инструмента миграции БД вынуждает вручную переносить изменения, сделанные в админке;
  • отсутствие встроенного шаблонизатора приводит к тому, что код шаблонов компонентов содержит html вперемешку с php. Этот факт позволяет разработчику добавлять логику в шаблон, что является дурным тоном.
Статья будет интересна, в основном, разработчикам, т.к. большинство рассматриваемых инструментов предназначено для них. Для внедрения этих инструментов потребуются базовые навыки работы с git, composer и доступ к исходному коду проекта. Некоторые инструменты, в конечном итоге, будут интересны и менеджерам проектов, и владельцам сайтов.

Классификация рассматриваемых инструментов

Рассматриваемые инструменты разделим на следующие группы:
  • Справочные материалы;
  • Для IDE (на примере PhpStorm);
  • Автоматизация рутинных операций;
  • Работа с админкой;
  • Миграции БД;
  • Шаблонизаторы;
  • Логирование и отладка;
  • Другое (то, что не попало в другие категории).

Справочные материалы

Основной справочный материал стоит брать из официальной документации. Несмотря на ее несовершенство, она есть, и ее не мало:
Другие источники менее известны:
  • Репозиторий bitrix-info пользователя SidiGi
Wiki GitHub репозиторий освещает следующие темы:
  1. Работа с корзиной;
  2. Оформление заказа на D7;
  3. Настройки .settings.php;
  4. Кэширование;
  5. ORM;
  6. Отладка;
  7. .htaccess;
  8. и др.
  • Репозиторий wiki-bitrix пользователя studiofact
Более обширный и узконаправленный Wiki GitHub репозиторий. Содержит описание методов решения конкретных задач. Например, статьи “Если не работает BigData (компонент catalog.bigdata.products)”, “Замена стандартного битриксового лоадера во время AJAX запросов”, “Поиск по словам со склонениями”. Освещает следующие темы:
  1. D7;
  2. Регистрация и авторизация;
  3. Торговый каталог;
  4. Оформление заказа;
  5. Композит;
  6. Обмен с 1С;
  7. Редиректы;
  8. Почта;
  9. и др.
  • Репозиторий “Потрясающий битрикс” пользователя awesomebitrix
Немного отличается от предыдущих, т.к. не содержит справочной информации. Репозиторий представляет собой набор ссылок на разные ресурсы, сгруппированных по категориям:
  1. Учебные курсы - ссылки на все официальные курсы по 1С Битрикс;
  2. Документация - ссылки на официальную документацию;
  3. Инструменты - инструменты для решения определенных задач. Например, скрипт тестирования конфигурации сервера, скрипт bitrixsetup и др.;
  4. Блоги - блоги различных компаний и пользователей. Среди них есть и блок компании “Интерволга” :);
  5. Конференции - видеозаписи конференций по Битрикс;
  6. и др.
Также репозиторий содержит “свой” чат, в котором можно задать интересующий вас вопрос.

Обратите внимание на раздел “Блоги”, ведь они сами по себе являются наборами справочных материалов. Однако представлены далеко не все блоги по Битрикс. Например, отсутствует отличный блог “Mr.Cappuchino”.
  • Блог “Mr.Cappuchino”
Блог очень емко и понятно освещает вопросы работы с корзиной и оформлением заказа на D7 в соответствующих статьях. Во многих статьях упор сделан на использование ядра D7. Среди прочих есть статьи о кэшировании, отладке, интеграции с 1С.
  • Блог компании “ИНТЕРВОЛГА"
Блог, где вы, вероятнее всего, читаете эту статью. В нашем блоге можно найти статьи не только для программистов, но и менеджеров, маркетологов, SEO-специалистов. Описываем свои проекты, модули, способы решения задач на примере реальных боевых проектов. Статьи разделены по категориям, а для удобства отслеживания новостей можно подписаться на email-рассылку.

Отдельно хочется сказать о небезызвестном инструменте Bitrix API Online. Это кладовая исходного кода Битрикс. Его суть проста - показать исходный код любого метода в модулях Битрикс. Ввиду отсутствия исчерпывающей официальной документации для API у Битрикс, разработчикам часто приходится самостоятельно разбираться в исходном коде. Инструмент Bitrix API Online отлично подойдет, если под рукой нет скачанного исходного кода. Инструмент предлагает поиск по модулю, классу и названию метода. Страница исходного кода метода содержит ссылку на официальную документацию и возможность комментирования. Не хватает только версионирования модулей.

Для PHPStorm

Достаточно теории. Пора переходить к практике. Практику начнем с категории “Для PHPStorm”. Здесь собраны доступные для PHPStorm плагины интеграции с Битрикс, набор LiveTemplates (aka сниппеты) и настройки.

Плагинов интеграции PHPStorm с Битрикс не много. На момент написания статьи - только 2.

Начнем с Bitrix Framework Support. Приведу перечень возможностей, чтобы заинтересовать вас:
  • поддержка папок bitrix и local;
  • переход на файл компонента, шаблона компонента (поддерживаются Twig и Smarty), шаблона сайта, а также на директории и файлы, найденные в строковых переменных;
  • переход на файл включаемой области при клике в вызове на значение ключа 'AREA_FILE_SUFFIX';
  • корректное определение типов и автокомплит для специальных переменных и переменных шаблона;
  • автокомплит компонента и его шаблона в процессе набора $APPLICATION->IncludeComponent(...) и CBitrixComponent::includeComponentClass(...);
  • решена проблема с подсветкой bitrix как неразрешенного пути в вызовах require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); и похожих конструкциях;
  • безопасный рефакторинг файлов с автоматическим обновлением их вызовов в строковых переменных;
  • поиск использований, например файла some.css, в вызовах $APPLICATION→SetAdditionalCSS('...some.css'), во всех файлах проекта;
  • шаблоны создания типовых страниц и разделов сайта.
Посмотрите видео демонстрацию упомянутых возможностей: https://youtu.be/37w7U65nVRU.

Плагин поддерживает PHPStorm версии 8 и выше.

Следующий плагин - BitrixLangCompletion - облегчает работу с языковыми файлами в Битрикс. Разработчик заявляет следующие возможности:
  • переход по коду языковой фразы из вызова GetMessage();
  • автодополнение кода фразы при вызове GetMessage();
  • показ значения языковой фразы прямо в коде на месте вызова GetMessage() или loc::getMessage();
  • немецкие языковые файлы автоматически открываются в кодировке ISO-8859-15;
  • подсветка строк с русскими символами в контексте PHP, как кандидатов на вынесение в языковой файл;
  • функция создания языковой фразы из строки с русскими символами (alt+Enter);
  • переход в файл, где зарегистрировано js-расширение.
Ознакомьтесь с возможностями плагина наглядно:
Использование плагина BitrixLangCompletion Плагин поддерживает PHPStorm версии 9 и выше.

Увы, но на этом плагины для PHPStorm заканчиваются. Но есть еще несколько интересных вещей.

bxApiDocs
- документация 1С-Битрикс в IDE PhpStorm. bxApiDocs - это папка с модулями 1С-Битрикс: Управление сайтом - Бизнес, в которой удалены лишние файлы, добавлены константы, события и phpDocs. В комплекте с IDE колоссально облегчает жизнь разработчику. bxApiDocs состоит из:
  • API, со всеми phpDocs, извлеченными из официальной документации;
  • Константы. phpDocs есть только у тех, что можно найти в официальной документации;
  • События модулей. Синтетические классы с набором методов-событий определенного модуля с документацией.
Установка предельно проста - необходимо добавить папку в индексацию IDE. После установки, по нажатию Ctrl+Q для метода Bitrix API вам будет доступна следующая “магия”: Использование bxApiDocs А autocomplete преобразится в лучшую сторону: Изменение autocomplete bxApiDocs подходит для начинающих разработчиков. Официальная документация Битрикс не покрывает все API. Также у bxApiDocs нет версионирования, что может вносить путаницу при использовании более новых версий БУС. Со временем bxApiDocs перестает хватать. Из-за отсутствия исчерпывающей документации по API, разработчикам приходится разбираться со многими вещами самостоятельно. Для этого необходимо держать под рукой исходный код Битрикс, чтобы иметь возможность “переходить” по методом с помощью IDE, использовать поиск. Для работы над крупным проектом просто обязательно иметь под рукой исходный код Битрикса именно той версии, на которой работает сам сайт.

Решение этой проблемы простое:
  1. Скачиваем актуальную версию скрипта bitrixsetup.
  2. Разворачиваем сайт на локальной машине. Желательно редакцию “Бизнес”, чтобы иметь доступ ко всему исходному коду.
  3. После установки сайта, копируем себе папку bitrix.
  4. Добавляем папку bitrix в индексацию IDE.
  5. Поддерживаем актуальность исходного кода с выходом новых версий Битрикс.
Два этих решения будут конфликтовать. Например, для классов Битрикс IDE будет ругаться: “Multiple definitions exist for class <class_name>”. Переход к исходному коду будет сопровождаться окном выбора источника: bxApiDocs или чистый исходный код. Так что советую выбирать что-то одно.

Те, кто следует стандартам оформления кода (а вы ведь следуете, правда?), знают, что у Битрикс есть правила написания исходного кода на PHP. На сайте Интерволги есть отличная статья о том, “Как настроить phpStorm для работы с 1С-Битрикс”.

В заключении поговорим о шаблонах кода, которые в PHPStorm называются Live Templates. Первый набор - шаблоны компонентов bxCompSnpt. Аббревиатуры этих шаблонов разворачиваются в полноценный вызов компонентов с форматированием, комментариями к параметрами и возможностью пройтись по всем параметрам и задать значения. Параметры компонента разбиты на категории с помощью “регионов”, поэтому длинный лист параметров можно свернуть, и вызов компонента будет выглядеть элегантно и коротко: Вызов компонента bxCompSnpt Добавить такую возможность в свою IDE достаточно просто - нужно просто скопировать один .xml файл в определенную папку.

Еще один набор из 93 шаблонов вы найдете в нашей статье “44 Live Templates для Битрикса + ещё 49 для D7”. Приведенные в статье шаблоны не разворачиваются в вызовы компонентов. Они призваны ускорить работу с наиболее часто используемым API Битрикс. Например, если необходимо кэшировать дополнительные данные в result_modifier.php, воспользуйтесь шаблоном “cache”, который развернется в строку “$this->__component->SetResultCacheKeys(array(" $END$ "));”. Курсор будет установлен в позиции $END$, где вы сможете сразу вписать название ключа массива $arResult. Согласитесь, намного быстрее, чем писать эту строку вручную. Подключить модуль инфоблоков еще проще: ibl + <Tab> = CModule::IncludeModule("iblock"). Установка еще проще - нужно просто импортировать .jar файл как файл настроек.

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

Автоматизация рутинных операций

В этом разделе будут освещены инструменты, ускоряющие некоторые рутинные операции.
Инструмент прост в установке и использовании. Закидываем скрипт на сайт и открываем в браузере. Увидим следующую форму: Восстановление пароля администратора Необходимо заполнить поля “Логин”, “Пароль” и “Повтор пароля”. По логину будет произведен поиск пользователя в БД. Если такой пользователь найден, то его данные будут обновлены: произойдет активация пользователя, присоединение к группе администраторов, смена пароля на указанный. Опционально, если задан email, он также будет обновлен в БД. Если пользователя с указанным логином не существует, то такой пользователь будет создан. Вдобавок, скрипт еще и авторизует пользователя.

После выполнения, такой скрипт обязательно нужно удалить с сайта, чтобы не оставлять дыр для злоумышленника. Тем более, что сделать это очень легко: скрипт любезно предлагает удалить себя после завершения работы. Также перед размещением на сайте, советуем переименовать скрипт в целях безопасности.
  • Гаджет мониторинга и очистки кэша
Гаджет можно встроить на рабочий стол в админке, и тогда не придется лезть в ее глубинки для очистки кэша. Гаджет выводит информацию с группировкой по типу кэша:
  1. Управляемый кэш в папке “/bitrix/managed_cache/”;
  2. Управляемый кэш в папке “/bitrix/stack_cache/”;
  3. Неуправляемый кэш в папке “/bitrix/cache/”;
  4. HTML кэш в папке “/bitrix/html_pages/”;
  5. Кэш изображений “/upload/resize_cache”
Для каждой группы отображается количество файлов кэша и суммарный объем. Для удаления кэша достаточно нажать одну кнопку. Очистка происходит стандартными средствами Битрикс.
Удаление кэша в Битрикс
  • Скрипт чистки каталога upload/iblock
Скрипт очищает каталог от неиспользуемых файлов, которые остаются после удаления элемента инфоблока или многократных обменов с 1С. Скрипт проверяет каждый файл в каталоге upload/iblock на наличие в таблице b_file. Если файла в таблице нет, выводит полный путь к нему на экран. Это один из режимов работы - поиск файлов. Если указать опцию --move-file и задать путь к папке, то скрипт переместит найденные файлы в заданную папку, сохранив иерархию. С помощью опции --delete-files можно удалить найденные файлы.

Недостаток скрипта в том, что он загружает все имена файлов из таблицы b_file в оперативную память. Это может привести к падению скрипта в случае нехватки памяти.

Запускать скрипт необходимо из консоли. Есть простор для доработки: прикрутить UI и оптимизировать работу скрипта по использованию оперативной памяти.

Работа с админкой

Создание кастомных административных страниц - задача, с которой каждый рано или поздно сталкивается. Те, кто уже пробовал знают, насколько это “больно” . Чтобы понимать масштаб трагедии, приведу пример: в модуле iblock версии 18.6.400 код административной страницы списка элементов инфоблоков (/bitrix/modules/iblock/admin/iblock_element_admin.php) представляет собой полотно из 3811 строк кода в котором намешан и PHP, и JavaScript, и HTML. И чтобы создать похожую страницу, например для кастомной таблицы в БД, вам потребуется во всем этом разобраться и воспроизвести. Хватит это терпеть!

Для создания типичного набора страниц для таблицы БД (страница списка и детальная страница) есть отличная библиотека, которая значительно упрощает этот процесс. Встречайте - DigitalWand/admin_helper.

Это “API для сборки кастомных админок в Битриксе”. Модуль реализует подход MVC. В данной статье я не буду подробно описывать структуру модуля и все его возможности. Этому можно посвятить отдельную статью. Кстати, так и сделали разработчики модуля. Есть также статья на Хабр и подробная документация по API.

Здесь же я расскажу, как выглядит создание страниц с использованием модуля:
  • создаем битриксовую ORM сущность - модель;
  • создаем два класса-хелпера: для страницы списка и детальной. Весь код стандартного хелпера - объявление свойства класса с указанием полного имени модели;
  • создаем класс с описанием интерфейса админки. Два метода. Первый возвращает массив с описанием выводимых полей и их настроек. Второй возвращает массив с полными именами классов-хелперов;
  • добавляем страницу в административное меню.
Теперь нет никакого копипаста сотен строк кода, нет HTML и JS посреди PHP. Есть классы и удобство. Попробуйте сами.

Плата за удобство - необходимость создания ORM сущности Битрикс. При желании использовать модуль для сущностей, не использующих ORM Битрикс, можно подготовить для таких сущностей класс-обертку, реализующий необходимые методы.

В отличие от HLB есть некоторые преимущества:
  • поддерживаются разделы;
  • в теории можно не привязываться к ORM сущности Битрикс и даже получать данные из другой БД;
  • возможность кастомизации полей.
А что, если мы не привязаны ни к какой сущности? Что, если нам нужна более гибкая страница? Например, страница настроек. И тут есть решение - модуль “Конструктор административной части”.

Принцип работы достаточно прост:
  • в своем модуле создаем класс, наследуя от стандартного. В методе getConfig() данного класса необходимо вернуть массив с описанием табов и полей на странице;
  • в файле options.php своего модуля “показываем” форму настроек;
  • после этого появится страница настроек для вашего модуля («Настройки» -> «Настройки продукта» -> «Настройки модулей» -> «<Название вашего модуля>»).
Возможностей у модуля много. Автор заявляет поддержку многосайтовости, множественные и вложенные вкладки, 24 вида встроенных инпутов с возможностью изменять их внешний вид и поведение, а также система событий.

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

В официальном репозитории есть подробное описание работы с модулем и тестовый пример.

Миграции

Тема миграций актуальна для любого крупного проекта, т.к. разработка обычно производится на тестовом сервере, а изменения постоянно приходится переносить на боевой. Для переноса кода используется git, а для изменений БД - инструмент миграций. У Интерволги есть обзорная статья систем миграции Битрикс. Там подробно описаны существующие решения в маркетплейсе 1С-Битрикс. На Github также есть решения по миграции. Самые популярные из них - arrilot/bitrix-migrations, worksolutions/bitrix-reduce-migrations, cjp2600/bim-core работают по схожему принципу. Для каждой миграции создается отдельный класс, в котором необходимо реализовать методы применения и отката изменений в рамках миграции. arrilot/bitrix-migrations имеет возможность автоматического создания миграций при внесении изменений в админке. Но список мигрируемых сущностей включает только базовые - инфоблоки, HL-блоки, группы пользователей.

У компании Intervolga есть свое решение для миграций - intervolga.migrato. Это open-source решение с репозиторием на github. Подробно оно описано в нашей статье. Решение отличается принципиально другим подходом к вопросу миграций и поддержкой большого количества сущностей. Нет необходимости описывать каждую миграцию в виде кода. Модуль позволяет выгрузить структуру инфоблоков, настройки свойств, групп пользователей, сайтов, ORM-сущности и т.д. в XML. Эти XML-файлы можно разместить в репозитории проекта, и на другом сервере восстановить из них структуру БД. Модуль способен мигрировать много сущностей, полный список которых есть в Wiki репозитория. Т. к. решение open-source, любой желающий может разработать механизм миграции для недостающей сущности и предложить pull request. В wiki репозитория есть инструкцию по разработке класса миграции для новой сущности.

Шаблонизаторы

Если вы когда либо работали с одним из php фреймворков (напр. Laravel), то вам наверняка известно понятие шаблонизатора. И тут у Битрикс есть что предложить. На просторах Github были найдены решения по адаптации известных шаблонизаторов Twig и Blade под Битрикс. И оба действительно работают.

Начнем с Twig. Для использования шаблонизатора Twig на Github есть решение maximaster/tools.twig. Чтобы начать использовать Twig в Битрикс, нужно:
  • установить composer зависимость;
  • добавить конфиг в файл .settings.php;
  • создать в шаблоне компонента файл template.twig вместо template.php.
В решении поддерживается наследование шаблонов, кеширование, возможность расширения с помощью события, принудительно подключается файл component_epilog.php, а в шаблонах доступны встроенные переменные и функции Битрикс. Одним из недостатков является невозможность использовать шаблонизатор для шаблона сайта. В репозитории есть примеры использования шаблонизатора, так что разобраться в нем не составит труда. Решение для шаблонизатора Blade - arrilot/bitrix-blade. Функциональность решения схожа. Плюс заявлена поддержка эрмитажа. Ограничение на шаблон сайта остается. Установка и настройка также не составляет труда. Однако разобраться с решением будет труднее, ввиду отсутствия примеров использования в репозитории. На помощь приходит документация самого Blade.

В целом, решения для шаблонизатора Twig мне показалось более удобным и адаптированным под Битрикс.

Шаблонизаторы делают код более элегантным и читаемым для тех, кто с ними знаком. Однако для новичков это наоборот может вызвать некоторые трудности в понимании.

Логирование и отладка

Логирование - один из важнейших инструментов для отладки. Рассмотрим типичную задачу по разработке шаблона компонента.

Мы создаем папку нового шаблона, добавляем файл template.php и первое, что мы делаем, логируем $arResult компонента. Обычно для этого используются функции print_r() и var_dump(), которые выводят информацию на экран браузера. У тех, кто давно ими пользуется, наверняка есть в запасе пара сниппетов для форматированного вывода и добавления мета-информации (например, название файла или дата). $arResult типичного Битрикс компонента на экране выглядит как длинная простыня.

Допустим, мы написали, что то похожее на ”echo '<pre>' . print_r($arResult, true) . '</pre>';” Далее мы открываем браузер, переходим на страницу с новым шаблоном компонента и долго и упорно скролим в поисках необходимой нам информации. Более продвинутый пользователь воспользуется Ctrl+F, если помнит название ключей массива.

Однако, хватит это терпеть! Как раз для таких случаем есть замечательная библиотека kint.

Это красивая и удобная замена функциям var_dump(), print_r() и debug_backtrace(). Библиотека не адаптирована под Битрикс. Она и без того дружит с ним без проблем. После установки решения с помощью composer вам больше не понадобятся сниппеты для форматированного вывода информации. Ведь теперь типичная строка ”echo '<pre>' . print_r($arResult, true) . '</pre>';” превращается в элегантную “d($arResult);”. А на экране вместо простыни, вы увидите примерно следующую картину: Применение библиотеки kint Здесь у нас есть все, что нужно:
  • ключи и значения массивов;
  • информация о типах данных;
  • размеры массивов;
  • возможность сворачивать и разворачивать вложенные массивы;
  • наглядный поиск с подсветкой;
  • возможность получить полный путь к элементу массива (удобно при большой вложенности);
  • возможность открыть элемент в отдельном окне;
  • стек вызовов.
Удобно также то, что при открытии страницы наш “var_dump” больше не перекрывает всю существующую информацию, а аккуратно располагается внизу страницы в свернутом состоянии: Внешний вид kint на боевой версии сайта А чтобы не забыть вывод при переносе на prod-сервер, нужно просто установить свойство Kint::$enabled_mode в false, и теперь все вызовы d() не издадут ни звука.

Есть также и адаптация для недавно упомянутого шаблонизатора Twig - kint-php/kint-twig.

Вообщем, плюсов много, так что скорее открывайте консоль и вводите composer require kint-php/kint.

Если говорить о серьезном логировании php скриптов, то существует не безызвестная библиотека Monolog. Monolog позволяет логировать в файлы, сокеты, почтовые ящики, базы данных и различные веб-сервисы, предоставляя для этого удобное API.

Адаптировать это решение для Битрикс вызвалась команда bitrix-expert, выпустив решение bitrix-expert/monolog-adapter. Решение пополняет коллекцию Monolog возможностью вывода в Журнал событий в админке Битрикс. Помимо результатов ручного логирования, есть возможность записывать в Журнал событий необработанные исключения.

Второй частью библиотеки является инструмент MonologAdapter, который обрабатывает конфиг файл .settings.php. Таким образом, можно конфигурировать логи Monolog в файле .settings.php.

Приобщиться к этому прекрасному инструменту вам поможет composer:
  • composer require bitrix-expert/monolog-adapter.

Другое

В эту категорию мы вынесли не объединенные общей темой инструменты. Мы не пробовали их на практике, но заявленная функциональность привлекает внимание. Было бы неуважительно их не упомянуть.

Решение notamedia/console-jedi базируется на инструменте Symfony Console. Предназначено для упорядочивания и автоматизации создания различных консольных скриптов для сайта. Console Jedi – инструмент для разработчиков, вызывается из консоли и позволяет в CLI управлять системой и выполнять консольные команды. Базирование на Symfony Console позволяет без труда подключать сторонние консольные команды (например, PHP CPD, Phinx) и внедрять свои. Из коробки присутствуют такие команды как, установка и удаление модуля, переиндексация поиска и некоторые другие.

Решение arrilot/bitrix-models предлагает новый подход к работе с сущностями Битрикс наподобие того, как это сделано в фреймворках, например Laravel. Данный пакет привносит Model Layer в Битрикс. Этот слой логически состоит из двух частей:
  1. модели для сущностей битрикса работающие внутри через API Битрикса (CIBlockElement и т.д.) и представляющие собой надстройку над ним. С внешней же стороны эта надстройка напоминает Eloquent;
  2. модели для произвольных таблицы, работающие через illuminate/database в целом и Eloquent в частности.
Инструмент будет интересен тем, кто переходит на Битрикс из других фреймворков, использующих Model Layer, например, Laravel. Работа с сущностями с использованием Bitrix models выглядит элегантно, но вопрос, использовать инструмент или нет – это уже ваш выбор.

One more thing...

В заключении хотелось бы рассказать о еще одном инструменте, который не попал ни в одну из наших категорий. Его основная задача - поиск сущностей в БД по устойчивым к миграциям параметрам. Например, поиск инфоблока по символьному коду. Поддерживаются следующие сущности Битрикс:
  • Инфоблоки (поиск по коду типа ИБ и коду самого ИБ);
  • Группы пользователей (поиск по коду группы);
  • Highload-блоки (поиск по названию);
  • Типы цен (поиск по коду цены).
Также инструмент контролирует и предотвращает создание Инфоблоков и Групп пользователей если символьный код не уникален.

Функциональность решения не велика. Однако она покрывает базовые операции с которыми разработчики сталкиваются каждый день - поиск id. Вы же не указываете id напрямую, так ведь? А за счет удобного API инструментом удобно пользоваться. Например, получение id ИБ по коду выглядит так:
  • $newsIblockId = \Bex\Tools\Iblock\IblockTools::find('news-type', 'news-ibl')->id().
Кстати, в нашем модуле интеграций intervolga.migrato тоже есть функциональность получения id ИБ и других сущностей по символьному или внешнему коду. Например, запрос выше с помощью модуля intervolga.migrato будет выглядеть так:
  • $newsIblockId = \Intervolga\Migrato\Data\Module\Iblock::getPublicId('', 'news-ibl').

Заключение

Ну вот и подошел к концу мой рассказ о полезностях для Bitrix разработчика. Коллеги, не бойтесь и не ленитесь использовать сторонние решения в своих Bitrix-проектах. Многие из них действительно полезные и удобные и позволяют сделать работу с Bitrix приятнее.
Поделитесь этой статьей в соцсетях и мы пришлем вам PDF шпаргалку со всеми полезными инструментами. Сможете распечатать и повесить у своего рабочего места.
Полезные инструменты для работы с Bitrix
Вам может быть интересно:

Сайты24 на стероидах: добавляем поиск и полноценный блог с ЧПУ

Разработка сложного сайта на 1С-Битрикс.
Настройка интеграции с 1С.
Продвижение интернет-магазинов.
Оцените статью
26.07.2019
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

Статьи по теме

Доработка системы LMS KnomaryMust have для бизнеса, где главный актив это люди, — стратегия обучения и развития персонала. Рассказываем как помогли доработать LMS-систему для крупной произв...
«Как раньше» больше не работает — B2B-система продаж сейчасВ этой статье хотим поговорить с чем сейчас сталкивается оптовый бизнес (множеством вызовов и изменений, которые требуют адаптации, а также оптимизации процессо...
Интеграция B2B-платформы на Битрикс с системой авторизации KeycloakВ период бурного роста компании менеджмент учетных записей сотрудников и клиентов может стать проблемой. Решение — интеграция с брокером авторизаций Keycloak ил...
Разработка календаря бронирования для сайта на Битрикс авиационного учебного центраЧтобы пилоты авиакомпаний могли бронировать время своих тренировок в учебном центре, мы разработали для них удобный модуль бронирования времени. Рассказываем по...
Продавайте больше через индивидуальные скидки и персональные цены для оптовиковВ статье рассказываем, как с помощью функционала работы с ценами и скидками можно привлекать новых b2b-клиентов и удерживать старых, создавая долгосрочные и вза...
Биллинг ИТ-компании на laravelОбычно мы рассказываем, как принесли пользу клиенту. Но сегодня у нас будет особый разговор, ведь заказчиком биллинговой системы ИТ-компании была… ИНТЕРВОЛГА! ...
Мы работаем по одному из двух форматов:
  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).
ИНТЕРВОЛГА предоставляет:
  • регулярные онлайн-планерки с заказчиком;
  • квалифицированных специалистов;
  • организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
  • полную прозрачность и регулярность отчетов о результатах.
Ключевые услуги:
  • нагруженный интернет-магазин;
  • личный кабинет;
  • оптовые продажи — B2B-платформа;
  • маркетплейс;
  • технический аудит сайта;
  • Битрикс24 — корпоративные HR-порталы;
  • Битрикс24 — построение CRM-системы;
  • Битрикс24 — личные кабинеты сотрудников;
  • Битрикс24 — аудит портала;
  • 1С — интеграция с другими системами;
  • 1С — доработка системы;
  • маркетинг — комплексное интернет-продвижение;
  • маркетинг — продвижение для B2B.
Хотите получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишитесь на рассылку — спамить не будем