355  /  382
Справочник

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

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

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

Роман Петров: Методы, которые были актуальны 2 года назад - сейчас могут быть неактуальны из-за появления готовых компонентов, делающих то же самое

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

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

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

  • В веб-проекте, при составлении ТЗ и проектировании, выявляют и описывают возможные виды собственных компонентов.
  • Определяется пространство имен собственных компонентов, например, с использованием названия проекта. Системные компоненты 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() ввиду того, что конец шаблона вызывает завершение буферизации автоматически.

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




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

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