Своя сущность на кастомной таблице и ORM

Урок 4 из 9

25 мин

Немного теории

Помимо Инфоблоков и Highload-блоков собственные сущности можно создавать самым низкоуровневым методом — определив собственную таблицу в БД и объявив класс для работы с ней. В таком случае у разработчика будет полный контроль над типами данных колонок и SQL-запросами.

В фреймворке есть готовый механизм, который рекомендуется использовать при работе с собственными таблицами: ORM-класс. Объявляя по классу для каждой таблицы БД по правилам ORM (потребуется определить только 2 метода: getTableName и getMap), разработчик получает готовый набор методов для CRUD-операций.

Используя ORM, разработчик получит структурированный класс с возможностью:

  • Валидировать данные
  • Создавать обработчики событий
  • Работать с единичными записями как с объектами \Bitrix\Main\ORM\Objectify\EntityObject
  • Работать с перечнем записей как с объектами \Bitrix\Main\ORM\Objectify\Collection
  • «Ходить» по связям в SELECT-запросах
  • Использовать объект \Entity\Query для конструирования сложных запросов
  • Использовать единый готовый синтаксис для фильтрации в SELECT-запросах
  • Использовать стандартную постраничную навигацию фреймворка
  • ORM-класс может быть сгенерирован автоматически силами фреймворка

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

  • Отсутствует веб-интерфейс для управления данными из административного раздела
  • Отсутствует система прав доступа в API
  • Отсутствует встроенная возможность группировки данных по разделам, как в Инфоблоках
  • Отсутствуют готовые скрипты импорта и экспорта данных из файлов
  • Модуль поиска ничего не знает про кастомную таблицу
  • Нет готовых компонентов для вывода списка, детальной карточки, фильтра по записям таблицы.

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

REST API

Часто собственная таблица с ORM-классом используется для хранения данных REST API веб-сервиса. В «1С-Битрикс: Управление сайтом» есть механизм для создания REST-сервера:

  • Отдельный модуль rest.
  • Контроллер в собственном модуле.

Подробнее об этих механизмах смотрите в документации и блоге.

Практика

В этом видео разберем пример создания сущности на основе собственной таблицы в базе данных. Наша новая сущность - это уведомления для пользователей сайта.

Своя сущность на HL-блоках

21 мин