Типы репозиториев

Все репозитории следуют интерфейсу Pranju\Bitrix24\Contracts\Repositories\Repository. Он содержит базовый набор инструкций для всех репозиториев. Дальше все репозитории в раках того же пространства имён делятся согласно методам ORM, доступных для сущностей. Это нужно для того, чтобы избежать ситуации, когда мы пытаемся например создать какую-то сущность, которая не может быть создана по API.

Реализованы следующие функциональные интерфейсы:

  • CanGetItem - определяет интерфейс для получения одного элемента

  • CanCreateItem - определяет интерфейс для создания одного элемента

  • CanUpdateItem - определяет интерфейс для обновления одного элемента

  • CanDeleteItem - определяет интерфейс для удаления одного элемента

  • SelectsItems - определяет интерфейс для получения множества элементов. Все репозитории, наследующие этот интерфейс лишены ограничения по количеству получаемых сущностей, но следуют правилу кратности 50-и параметров start и limit

Каждый из описанных интерфейсов добавляет три метода:

  • Конструктор - это метод отвечает за создание команды для выполнения соответствующего интерфейсу действия. Как правило, начинается с make.

  • Обработчик - это метод, который может обработать полученный при выполнении сгенерированной команды ответ, возвращая всегда ожидаемый ответ.

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

Last updated