Download the PHP package arrilot/bitrix-collectors without Composer
On this page you can find all versions of the php package arrilot/bitrix-collectors. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package bitrix-collectors
Данный пакет больше активно не поддерживается
Причина - мы больше не используем Битрикс в своих проектах. Если вам интересен этот проект и вы хотите заняться его поддержкой - форкните его и создайте Issue в данном репозитории чтобы мы поместили здесь ссылку на форк.
Мост для интеграции arrilot/collectors
с Битриксом
Установка
Использование
Основа - https://www.github.com/arrilot/collectors
Пакет позволяет собрать из различных коллекций и элементов (обычно полученных через какой-нибудь CIblockElement::GetList()
) идентификаторы и удобным образом дополучить по ним дополнительные данные одним запросом, а не в цикле как это обычно заканчивается
Данный мост реализует несколько наиболее востребованных в Битриксе коллекторов (collectors)
Готовые коллекторы:
Arrilot\BitrixCollectors\FileCollector
- импользует внутри себя FileTable::getList из d7Arrilot\BitrixCollectors\SectionCollector
- SectionTable::getListArrilot\BitrixCollectors\ElementCollector
- CIBlockElement::GetList + Fetch. Рекомендуется использовать инфоблоки 2.0, чтобы не было проблем с множественными свойствами.Arrilot\BitrixCollectors\UserCollector
- UserTable::getList
Абстрактные классы-коллекторы. От них можно наследоваться при разработке дополнительных танкеров.
Arrilot\BitrixCollectors\TableCollector
- для случая когда данные хранятся в отдельной таблице и для неё НЕТ d7 orm класса.Arrilot\BitrixCollectors\OrmTableCollector
- для случая когда данные хранятся в отдельной таблице и ЕСТЬ d7 orm класс.
Также как и с оригинальным пакетом цепочка методов должна заканчиваться методом performQuery()
который выполняем getList запрос в БД и возвращает результат. Можно одновременно собирать идентификаторы по нескольким коллекциям/элементам и т д.
Пример:
Все коллекторы поддерживают ->select([...])
, в котором можно указать массив $select
, который передается в API битрикса.
Аналогично в ->where(['...'])
можно указать $filter
Исключение - TableCollector
. Там в ->where()
нужно передавать строку, а не массив-фильтр.
Она будет подставлена в sql запрос без дополнительный обработки.