1  /  36

Создание собственных модулей

Просмотров: 79717
Дата последнего изменения: 17.09.2024
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5

  Создание модуля

Цитатник веб-разработчиков.

Sergey Leshchenko: Если код часто используется повторно, то его лучше вынести в модуль. Потратить на это лишние час-два, но зато не ловить потом фатальные баги сразу на всех проектах одновременно, когда кто-то, по случайности или не знанию, внес какие-то специфические изменения в этот код. И модуль вынести в маркетплейс, чтобы накатывать апдейты удобнее было.

Партнерские модули отличаются от стандартных модулей следующим:

  • ID модуля - полный код партнерского модуля, который задается в формате: код_партнера.код_модуля.

    Часть код_партнера постоянна для партнера (задается в карточке партнера). Часть код_модуля вводится партнером при добавлении нового модуля. Эти коды должны быть алфавитно-цифровыми, но первым символом не может быть цифра, и код неким образом должен соответствовать сути модуля. Например, для модуля форума желательно задать код forum. Тогда полный код будет mycompany.forum. Использование точки для разделения кода партнера и кода модуля необходимо, иначе ваш модуль не будет виден в списке установленных решений Marketplace, а попадет в список системных модулей, что является некорректной ситуацией.

    Важно! Код модуля обязательно должен быть задан в нижнем регистре, иначе не будет работать метод IncludeModule.

    Код не должен начинаться с цифры - это может помешать установке модуля. Также запрещается использование подчеркивания "_".

  • В файле /install/index.php кроме той информации, которая задается в любом стандартном модуле, необходимо еще указать:
  • $this->PARTNER_NAME = "Имя партнера - автора модуля"; 
    $this->PARTNER_URI = "http://www.mysite.ru";

    У клиента эта информация будет доступна в списке модулей.

Внимание! Модуль можно создавать в кодировках UTF-8 и Windows-1251.

Помните, что в Bitrix Framework принято, что версия не может быть равной 0, то есть 0.0.1 - минимальный номер версии.

Помните, что только языковые файлы из папки /ru/ конвертируются в кодировку сайта.

Примечание: Допускается наличие обфусцированных Обфускация (или запутывание кода) — приведение исходного кода или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.

Подробнее...
частей кода, при этом в описании модуля должна присутствовать информация о наличии такого кода.

  Инфоблоки или таблицы БД?

Цитатник веб-разработчиков.

Максим Месилов: Инфоблоки отлично подходят для прототипирования и макетирования функционала. На уровне своего приложения (модуля) делаете прослойку, которая отвечает за хранение данных и начинаете использовать инфоблоки.

Если вы упрётесь в производительность или особенности работы ИБ, то просто смените самый нижний уровень. В моей практике такого пока не случалось.

При создании собственных модулей у разработчиков часто возникает вопрос: при написании собственного модуля что целесообразнее: использование инфоблоков или собственные таблицы? Ответ на этот вопрос зависит от решаемой задачи. Наличие в Bitrix Framework инфоблоков не означает обязательности их использования для реализации своих модулей.

Инфоблоки - это универсальность. По этой причине:

  • Инфоблоки часто избыточны по своим возможностям;
  • При использовании инфоблоков разработчик может работать с модулем как с обычным компонентом, не нужно дорабатывать API (и описывать его).

Собственные таблицы - это прежде всего производительность. Используя свои таблицы, разработчик:

  • может сделать модуль куда более быстродействующим, чем если бы делал модуль со стандартным API;
  • при разработке собственного API, принимает на себя всю ответственность по безопасной работе своего модуля;
  • должен подумать о том, что с его кодом будут работать другие разработчики: комментарии и документация.

  Документация по теме




18
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии