PHPackages                             enjame/bitrix-models - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. enjame/bitrix-models

ActiveLibrary

enjame/bitrix-models
====================

0.7.22(6y ago)053MITPHPPHP &gt;=5.6.4

Since Jul 26Pushed 6y agoCompare

[ Source](https://github.com/enjame/bitrix-models)[ Packagist](https://packagist.org/packages/enjame/bitrix-models)[ Docs](https://github.com/enjame/bitrix-models)[ RSS](/packages/enjame-bitrix-models/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (1)Dependencies (2)Versions (61)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/450da429388d884f40cddd07ba9b344ace06ce3f35cf63241625a8358deef385/68747470733a2f2f706f7365722e707567782e6f72672f617272696c6f742f6269747269782d6d6f64656c732f762f737461626c652e737667)](https://packagist.org/packages/arrilot/bitrix-models/)[![Total Downloads](https://camo.githubusercontent.com/53999c01d658f69c7d821b840e9e38fe2ff42cad2a26fa6b9d317c7f1b9f6f2f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f617272696c6f742f6269747269782d6d6f64656c732e7376673f7374796c653d666c6174)](https://packagist.org/packages/Arrilot/bitrix-models)[![Build Status](https://camo.githubusercontent.com/710575a5fa516ec15ff9635e3f6f6ef1e8b2a596e23bf8ea5877ed8e97db0ade/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f617272696c6f742f6269747269782d6d6f64656c732f6d61737465722e7376673f7374796c653d666c6174)](https://travis-ci.org/arrilot/bitrix-models)[![Scrutinizer Quality Score](https://camo.githubusercontent.com/b6271bc235cf0500a45b14dc479f9ad5e8dbba3316c97e54f6ebf02fae57b1a8/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f617272696c6f742f6269747269782d6d6f64656c732f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/arrilot/bitrix-models/)

Bitrix models
=============

[](#bitrix-models)

Вступление
----------

[](#вступление)

Данный пакет привносит Model Layer в Битрикс. Этот слой логически состоит из двух частей:

1. Модели для сущностей битрикса (в дальнейшем будем называть их "Битрикс-модели") работающие внутри через API Битрикса (`CIBlockElement` и т д) и представляющие собой надстройку над ним. С внешней же стороны эта надстройка напоминает `Eloquent`.
2. Модели для произвольных таблицы работающие через `illuminate/database` в целом и `Eloquent` в частности.

Установка
---------

[](#установка)

1. `composer require arrilot/bitrix-models`
2. Регистрируем пакет в `init.php` - `Arrilot\BitrixModels\ServiceProvider::register();`

Использование моделей Bitrix
----------------------------

[](#использование-моделей-bitrix)

Для наследования доступны следующие модели:

```
Arrilot\BitrixModels\Models\ElementModel
Arrilot\BitrixModels\Models\SectionModel
Arrilot\BitrixModels\Models\UserModel
Arrilot\BitrixModels\Models\D7Model
```

Для пример далее везде будем рассматривать модель для элемента инфоблока (ElementModel). Для других сущностей API практически идентичен.

> ElementModel полноценно поддерживает только инфоблоки второй версии (та что хранит свойства в отдельных таблицах). С первой версией некоторые моменты могут не работать должным образом из-за особенностей работы CIBlockElement::GetList(). Самая большая проблема: Если в инфоблоке есть множественные свойства, то запросы с limit(), take(), и first() будут отрабатывать неверно и получать меньше элементов чем нужно и не с полным набором множественных свойств. Если вы всё же собираетесь использовать ElementModel с инфоблоками первой версии, то обязательно выставите const IBLOCK\_VERSION = 1; внутри класса модели.

Создадим, модель для инфоблока Товары.

```
