composer require beta/bx.model
Модели отражают сущности используемые в проекте: элементы инфоблоков, элементы hl блоков или записи в произвольной таблице. Представляют из себя формализованные данные и предоставляют интерфейс для более удобного оперирования данными.
Для интеграции с СУБД используются сервисы - ModelServiceInterface, данные сервисы имплементируют базовые операции:
- Запрос списка элементов сущностей (по определенным критериям) - список моделей или коллекция
- Запрос конкретного элемента сущности - модель
- Добавление/обновление элемента сущности - модели
- Удаление элемента сущности - модели
В репозитории есть несколько реализованных сервисов:
- FileService - позволяет работать с файлами из таблицы b_file
- UserService - позволяет работать с пользователями из таблицы b_user
Для реализации новых моделей необходимо использовать абстрактный класс AbsOptimizedModel, данный класс требует имплементации только одного метода toArray(): array
Все сервисы моделей должны имплементировать интерфейс ModelServiceInterface. Есть вспомогательные абстрактные классы:
- BaseModelService
- BaseLinkedModelService - предоставляет возможность подгрузки связанных моделей