Привет. Представляю вашему вниманию , которая создает единый интерфейс к популярным классам битрикса и помогает использовать автодополнение кода IDE при написании запросов.
Сейчас несколько утомляет писать кучу массивов для выборки данных, и что некоторые методы GetList отличаются в зависимости от класса (, , , - у всех разные синтаксисы).
Плюс нельзя явно указывать части запроса, приходится создавать массивы. Адаптеры для популярных классов:
Методы delete(), add() могут выкидывать исключения, если результат работы false, и есть запись $APPLICATION->GetException() или в объекте заполнен атрибут LAST_ERROR.
Класс - универсальный класс для создания запросов. Основное отличие от других классов - возможность напрямую задавать в методе from() откуда берется информация.
Библиотека использует свой автозагрузчик, подключает нужные модули (iblock,sale..) автоматически. Описание подключения сам проект:
Примеры использования:
Выберем элемент инфоблока с ID=666.
use BxHelpers\Query\Query as Q;
Выберем имена и коды 10 свойств заказа 10550
use BxHelpers\Query\SaleOrderPropsValueQuery as SaleOrderPropsValue;
Режим бета)
Сейчас несколько утомляет писать кучу массивов для выборки данных, и что некоторые методы GetList отличаются в зависимости от класса (, , , - у всех разные синтаксисы).
Плюс нельзя явно указывать части запроса, приходится создавать массивы. Адаптеры для популярных классов:
- IBlockElementQuery - адаптер для CIBlockElement
- IBlockQuery - CIBlock (позволяет задавать какие поля выводить, когда в CIBlock нет такой логики)
- IBlockSectionQuery - CIBlockSection
- SaleBasketQuery - CSaleBasket
- SaleOrderPropsValueQuery - CSaleOrderPropsValue
- SaleOrderQuery - CSaleOrder
- UserQuery - CUser
Методы delete(), add() могут выкидывать исключения, если результат работы false, и есть запись $APPLICATION->GetException() или в объекте заполнен атрибут LAST_ERROR.
Класс - универсальный класс для создания запросов. Основное отличие от других классов - возможность напрямую задавать в методе from() откуда берется информация.
Библиотека использует свой автозагрузчик, подключает нужные модули (iblock,sale..) автоматически. Описание подключения сам проект:
Примеры использования:
Выберем элемент инфоблока с ID=666.
use BxHelpers\Query\Query as Q;
| $element = (New Q) ->select(['NAME']) ->from(Q::IBElement) ->where(['ID' => 666]) ->fetch(); |
Выберем имена и коды 10 свойств заказа 10550
use BxHelpers\Query\SaleOrderPropsValueQuery as SaleOrderPropsValue;
| $q = (New SaleOrderPropsValue) ->select(['NAME','CODE']) ->where(['ORDER_ID' => 10550]) ->orderBy(['ID' => 'ASC']) ->limit(10); while($r=$q->fetch()){ // do something } |
Режим бета)