Для решения типичных задач веб-проекта обычно достаточно модифицировать шаблоны стандартных компонентов и создать несколько шаблонов сайта. Однако иногда возникают задачи, требующие разработки собственных компонентов 2.0 и размещения их на страницах веб-решения.
При разработке собственных компонентов 2.0, как правило, придерживаются следующей последовательности действий:
- В веб-проекте, при составлении ТЗ и проектировании, выявляют и описывают возможные виды собственных компонентов 2.0.
- Определяется пространство имен собственных компонентов 2.0, например, с использованием названия проекта. Системные компоненты Bitrix Framework размещены в пространстве имен "bitrix:", компоненты проекта могут размещаться в пространстве имен, к примеру, "citybank:".
- Определяется, какой стандартный компонент можно взять за основу для создания собственного компонента. В коде стандартных компонентов много примеров типичного и правильного использования API и техник программирования, поэтому рекомендуется брать их за основу.
- К каждому компоненту 2.0 продумывается интерфейс - какие параметры компонента должны быть доступны администратору веб-сайта для редактирования. Например, для компонента, отображающего прогноз погоды, можно в настройки для администратора вынести свойство "Адрес веб-сервиса" и "Таймаут соединения с веб-сервисом" и т.п.
- Определяется, в каком разделе дерева компонентов в визуальном редакторе необходимо разместить данный компонент.
- Компонент кодируется. Особое внимание уделяется настройте автокеширования компонента и профилированию его работы - он не должен выполнять запросы к базе данных в режиме кеширования, выполняет минимальное количество запросов к базе данных при устаревании кеша, хранит в кеше только необходимые данные, использует минимально возможный объем оперативной памяти (не сортирует массивы размером с десятки-сотни мегабайт и т.п).
Созданные для веб-проекта собственные компоненты 2.0 могут использоваться как основа для новых компонентов, а также, по причине модульной структуры и "отчуждаемости от проекта" - эффективно использоваться в других веб-решениях. Постепенно формируется и развивается библиотека собственных компонентов 2.0. Иногда целесообразно компоненты проекта хранить в одном пространстве имен, а используемые в разных проекта компоненты 2.0 - в специальном пространстве имен типа "library:".
- В папке веб-сервера "/bitrix/components/" должны присутствовать папки с названием пространства имен компонентов проекта, например "myproject" и "mylibrary". Иногда разработчики создают собственные пространства имен типа "pupkin" или "test123", которые остаются в веб-проекте после его ввода в эксплуатацию.
- В визуальном редакторе в дереве компонентов 2.0 собственные компоненты проекта размещены в отдельном подразделе дерева.
- Собственные компоненты 2.0 проекта имеют соответствующие настройки, доступные в публичной части сайта. Важно, чтобы все настройки были тщательно протестированы и описаны. Не должно быть лишних, технических, непонятных администратору настроек, типа "Глубина вложенности хэш-массива объектов реестра" в компоненте-информере текущей погоды.