vsavritsky / bitrix-models
Библиотека для работы с инфоблоками, хайлоадами и т.п как сущностями
Installs: 510
Dependents: 2
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 3
Open Issues: 0
pkg:composer/vsavritsky/bitrix-models
Requires
- php: >=8.0
- ext-json: *
- ext-mbstring: *
- vsavritsky/bitrix-filter-builder: *
- dev-master
- 0.1.27
- 0.1.26
- 0.1.25
- 0.1.24
- 0.1.23
- 0.1.22
- 0.1.21
- 0.1.20
- 0.1.19
- 0.1.18
- 0.1.17
- 0.1.16
- 0.1.15
- 0.1.14
- 0.1.13
- 0.1.12
- 0.1.11
- 0.1.10
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- 0.0.27
- 0.0.26
- 0.0.24
- 0.0.23
- 0.0.22
- 0.0.21
- 0.0.20
- 0.0.19
- 0.0.18
- 0.0.17
- 0.0.16
- 0.0.15
- 0.0.14
- 0.0.13
- 0.0.12.2
- 0.0.12.1
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.3
- 0.0.2
- 0.0.1
This package is auto-updated.
Last update: 2025-11-17 18:10:42 UTC
README
Библиотека для работы с данными инфоблоков, хайлоадблоков и пользователями Bitrix в стиле ООП с использованием паттерна Repository.
Быстрый старт
Установка
composer require your-vendor/bitrix-models
Основные возможности
- ✅ Работа с элементами инфоблоков через
ElementModelиElementRepository - ✅ Работа с разделами инфоблоков через
SectionModelиSectionRepository - ✅ Работа с товарами через
ProductModelиProductRepository - ✅ Работа с хайлоадблоками через
HighloadModelиHighloadRepository - ✅ Работа с пользователями через
UserModelиUserRepository - ✅ Гибкая система фильтрации, сортировки и выборки данных
- ✅ Автоматическое кэширование запросов
- ✅ Набор сервисов для работы с файлами, изображениями, датами и т.д.
Пример использования
// 1. Создайте модель namespace App\Entity\Content; use BitrixModels\Entity\ElementModel; class News extends ElementModel { const IBLOCK_CODE = 'news'; } // 2. Создайте репозиторий namespace App\Repository\Content; use App\Entity\Content\News; use BitrixModels\Repository\ElementRepository; class NewsRepository extends ElementRepository { protected $class = News::class; } // 3. Используйте репозиторий use BitrixModels\Model\Filter; use BitrixModels\Model\Sort; use BitrixModels\Model\Select; $repository = new NewsRepository(); // Поиск по ID $news = $repository->findById(123); // Поиск с фильтром и сортировкой $filter = Filter::create()->eq('ACTIVE', 'Y'); $sort = Sort::create('SORT', Sort::ASC); $news = $repository->findOneByFilter($filter, $sort); // Поиск с пагинацией $select = Select::create()->withAllProperties()->withSeo(); $result = $repository->findByFilter($select, $filter, $sort, 20, 1); foreach ($result->getList() as $news) { echo $news->getName(); } // Добавление элемента $id = $repository->add([ 'NAME' => 'Новая новость', 'ACTIVE' => 'Y', ], [ 'COLOR' => 'red', ]); // Обновление элемента $repository->update($id, [ 'NAME' => 'Обновленное название', ]);
Документация
📖 Полная документация - подробное описание всех сущностей, репозиториев и примеры использования
📚 Документация по сервисам - описание всех доступных сервисов
Основные классы
Сущности (Модели)
BitrixModels\Entity\ElementModel- элементы инфоблоковBitrixModels\Entity\SectionModel- разделы инфоблоковBitrixModels\Entity\ProductModel- товары (расширяет ElementModel)BitrixModels\Entity\HighloadModel- элементы хайлоадблоковBitrixModels\Entity\UserModel- пользователи
Репозитории
BitrixModels\Repository\ElementRepository- работа с элементамиBitrixModels\Repository\SectionRepository- работа с разделамиBitrixModels\Repository\ProductRepository- работа с товарамиBitrixModels\Repository\HighloadRepository- работа с хайлоадблокамиBitrixModels\Repository\UserRepository- работа с пользователями
Модели данных
BitrixModels\Model\Filter- фильтрация запросовBitrixModels\Model\Sort- сортировка результатовBitrixModels\Model\Select- выборка полей и свойствBitrixModels\Model\ListResult- результат выборки с пагинацией
Сервисы
BitrixModels\Service\DateTimeService- форматирование датBitrixModels\Service\FileService- работа с файламиBitrixModels\Service\PictureService- работа с изображениямиBitrixModels\Service\PhoneService- форматирование телефоновBitrixModels\Service\GeoService- работа с геоданнымиBitrixModels\Service\UrlService- работа с URLBitrixModels\Service\SettingsService- работа с настройками
Лицензия
См. файл LICENSE