356  /  381
Справочник

Создание компонентов

Просмотров: 64206
Дата последнего изменения: 17.04.2025
Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Фактически, на сегодняшний момент свой компонент нужно писать лишь тогда, когда нужен абсолютно новый функционал для сайта. Если учесть тот факт, что состав стандартных компонентов довольно большой, то в большинстве случаев написание новых и не требуется. Достаточно расширить функционал уже имеющихся.

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

Типовая последовательность действий

  • В веб-проекте, при составлении ТЗ и проектировании, выявляют и описывают возможные виды собственных компонентов.
  • Определяется пространство имен собственных компонентов, например, с использованием названия проекта. Системные компоненты Bitrix Framework размещены в пространстве имен bitrix, компоненты проекта могут размещаться в пространстве имен, к примеру, citybank.

    Внимание ! Названия создаваемых компонентов не должны пересекаться со стандартными.

  • Определяется, какой стандартный компонент можно взять за основу для создания собственного. В коде стандартных компонентов много примеров типичного и правильного использования API и техник программирования, поэтому рекомендуется брать их за основу.
  • К каждому компоненту продумывается интерфейс – какие параметры должны быть доступны администратору веб-сайта для редактирования. Например, для компонента, отображающего прогноз погоды, можно в настройки для администратора вынести свойство Адрес веб-сервиса и Таймаут соединения с веб-сервисом и т.п.
  • Определяется, в каком разделе дерева компонентов в визуальном редакторе необходимо разместить созданный компонент.
  • Компонент кодируется. Особое внимание уделяется настройке автокеширования компонента и профилированию его работы – он не выполняет запросы к базе данных в режиме кэширования, выполняет минимальное количество запросов к базе данных при устаревании кэша, хранит в кэше только необходимые данные, использует минимально возможный объем оперативной памяти (не сортирует массивы размером с десятки-сотни мегабайт и т.п).

Порядок создания

Выделить необходимый php-код в отдельный файл для того, чтобы использовать его потом в виде вызываемого файла несложно. Но компонент еще нужно подключить в систему с помощью файла описания, который опознается ядром Bitrix Framework. Без этого пользователь не увидит в визуальном редакторе иконку с названием компонента и сможет настраивать его свойства.

Напомним, что компонент – это выделенный в отдельный файл php-код с законченной функциональностью, файл регистрации компонента в системе и описания его параметров, а также файлы локализации.

  • Регистрация компонента
    • Выделение необходимого php-кода в отдельный файл.
    • Создание файла описания .description.php
    • Размещение файлов в папке в собственном пространстве имен.
  • Задание параметров в коде компонента
  • Локализация
    • Подготовка файлов с текстовыми константами для компонента и файла регистрации: /lang/ru/<имя_компонента>/component.php и /lang/ru/<имя_компонента>/.description.php
    • Внесение изменения в код обоих файлов компонента для использования этих констант (подключение файла локализации делается при помощи функции IncludeTemplateLangFile).

Важно! Все ключи в $MESS, содержащие название, описание и параметры компонента, а также идентификаторы веток компонента в дереве компонентов визуального редактора должны быть уникальными в рамках всего продукта.

При создании компонента для Marketplace нужно создавать мастер установки (аналогично модулю).

Совет от М. Месилова:

Если на сайте используются компоненты собственной разработки и требуется их большое обновление, то рекомендуется использовать в префиксе номер версии: news.list.v2 так вы не поломаете старые компоненты по всему сайту и у вас будет возможность сделать новый компонент с потерей обратной совместимости.

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

Примечание: При создании компонента рекомендуется использовать:
  • SEF режим В комплексные компоненты встроена функция генерации ЧПУ. У этих компонентов всегда есть входной параметр SEF_MODE, который может принимать значения Y и N. Если параметр SEF_MODE равен N, то компонент работает с физическими ссылками и все параметры передает через стандартные параметры HTTP запроса.

    Подробнее ...

а в шаблоне компонента:

  • JS-класс Иногда при разработке компонента его шаблон необходимо наделить js-функциональностью, событиями и прочим. Выглядеть это может примерно так:

    Подробнее ...
    ,
  • буферизацию Усовершенствованные методы буферизации в шаблоне позволяют более не использовать CBitrixComponentTemplate::EndViewTarget() ввиду того, что конец шаблона вызывает завершение буферизации автоматически.

    Подробнее ...
    .




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