PHPackages                             arrilot/bitrix-collectors - 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. arrilot/bitrix-collectors

AbandonedArchivedLibrary

arrilot/bitrix-collectors
=========================

0.2.1(9y ago)51.8k↓100%1MITPHPPHP &gt;=5.6.4

Since Feb 12Pushed 5y ago3 watchersCompare

[ Source](https://github.com/arrilot/bitrix-collectors)[ Packagist](https://packagist.org/packages/arrilot/bitrix-collectors)[ Docs](https://github.com/arrilot/bitrix-collectors)[ RSS](/packages/arrilot-bitrix-collectors/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (3)Dependencies (1)Versions (4)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/5e2667369c99962e9557bf20be7a424f44a51c1cc5b0f3fd32b410ea9578f14d/68747470733a2f2f706f7365722e707567782e6f72672f617272696c6f742f6269747269782d636f6c6c6563746f72732f762f737461626c652e737667)](https://packagist.org/packages/arrilot/bitrix-collectors/)

Данный пакет больше активно не поддерживается
=============================================

[](#данный-пакет-больше-активно-не-поддерживается)

Причина - мы больше не используем Битрикс в своих проектах. Если вам интересен этот проект и вы хотите заняться его поддержкой - форкните его и создайте Issue в данном репозитории чтобы мы поместили здесь ссылку на форк.

Мост для интеграции `arrilot/collectors` с Битриксом
====================================================

[](#мост-для-интеграции-arrilotcollectors-с-битриксом)

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

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

`composer require arrilot/bitrix-collectors`

Использование
-------------

[](#использование)

Основа - Пакет позволяет собрать из различных коллекций и элементов (обычно полученных через какой-нибудь `CIblockElement::GetList()`) идентификаторы и удобным образом дополучить по ним дополнительные данные *одним запросом*, а не в цикле как это обычно заканчивается

Данный мост реализует несколько наиболее востребованных в Битриксе коллекторов (collectors)

Готовые коллекторы:

1. `Arrilot\BitrixCollectors\FileCollector` - импользует внутри себя FileTable::getList из d7
2. `Arrilot\BitrixCollectors\SectionCollector` - SectionTable::getList
3. `Arrilot\BitrixCollectors\ElementCollector` - CIBlockElement::GetList + Fetch. Рекомендуется использовать инфоблоки 2.0, чтобы не было проблем с множественными свойствами.
4. `Arrilot\BitrixCollectors\UserCollector` - UserTable::getList

Абстрактные классы-коллекторы. От них можно наследоваться при разработке дополнительных танкеров.

1. `Arrilot\BitrixCollectors\TableCollector` - для случая когда данные хранятся в отдельной таблице и для неё НЕТ d7 orm класса.
2. `Arrilot\BitrixCollectors\OrmTableCollector` - для случая когда данные хранятся в отдельной таблице и ЕСТЬ d7 orm класс.

Также как и с оригинальным пакетом цепочка методов должна заканчиваться методом `performQuery()` который выполняем getList запрос в БД и возвращает результат. Можно одновременно собирать идентификаторы по нескольким коллекциям/элементам и т д.

Пример:

```
    use Arrilot\BitrixCollectors\FileCollector;

    $items = [
        ['ID' => 1, 'PROPERTY_FILES1_VALUE' => 1],
        ['ID' => 2, 'PROPERTY_FILES2_VALUE' => [2, 1]],
    ];

    $item = ['ID' => 3, 'PROPERTY_OTHER_FILES_VALUE' => 4];

    $collector = new FileCollector();
    $files = $collector->scanCollection($items, ['PROPERTY_FILES1_VALUE', 'PROPERTY_FILES2_VALUE'])
                       ->scanItem($item, 'PROPERTY_OTHER_FILES_VALUE')
                       ->performQuery();
    var_dump($files);

    // результат
    /*
        array:3 [▼
            1 => array:13 [▼
              "ID" => "1"
              "TIMESTAMP_X" => "2017-02-10 17:25:17"
              "MODULE_ID" => "iblock"
              "HEIGHT" => "150"
              "WIDTH" => "140"
              "FILE_SIZE" => "15003"
              "CONTENT_TYPE" => "image/png"
              "SUBDIR" => "iblock/b03"
              "FILE_NAME" => "avatar.png"
              "ORIGINAL_NAME" => "avatar-gs.png"
              "DESCRIPTION" => ""
              "HANDLER_ID" => null
              "EXTERNAL_ID" => "125dc3213f7ecde31124f3ebca7322b5"
           ],
           2 => array:13 [▼
              "ID" => "2"
              "TIMESTAMP_X" => "2017-02-10 17:31:30"
              "MODULE_ID" => "iblock"
              "HEIGHT" => "84"
              "WIDTH" => "460"
              "FILE_SIZE" => "4564"
              "CONTENT_TYPE" => "image/png"
              "SUBDIR" => "iblock/fcf"
              "FILE_NAME" => "4881-03.png"
              "ORIGINAL_NAME" => "4881-03.png"
              "DESCRIPTION" => ""
              "HANDLER_ID" => null
              "EXTERNAL_ID" => "35906df62694b4ed5f150c468a1f5d72"
           ]
           4 => array:13 [▼
              "ID" => "4"
              "TIMESTAMP_X" => "2017-02-10 17:33:30"
              "MODULE_ID" => "iblock"
              "HEIGHT" => "84"
              "WIDTH" => "460"
              "FILE_SIZE" => "4564"
              "CONTENT_TYPE" => "image/png"
              "SUBDIR" => "iblock/fc2"
              "FILE_NAME" => "test.png"
              "ORIGINAL_NAME" => "4881-03.png"
              "DESCRIPTION" => ""
              "HANDLER_ID" => null
              "EXTERNAL_ID" => "35906df62694b4ed5f150c468a1f5d53"
           ]
        ]
    */

```

Все коллекторы поддерживают `->select([...])`, в котором можно указать массив `$select`, который передается в API битрикса. Аналогично в `->where(['...'])` можно указать `$filter`Исключение - `TableCollector`. Там в `->where()` нужно передавать строку, а не массив-фильтр. Она будет подставлена в sql запрос без дополнительный обработки.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Total

3

Last Release

3333d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/58d505cd6b2551974b0c076d133fd9a3c9cd635bbf308adb17a6399bd3b63232?d=identicon)[Arrilot](/maintainers/Arrilot)

---

Top Contributors

[![arrilot](https://avatars.githubusercontent.com/u/2826480?v=4)](https://github.com/arrilot "arrilot (7 commits)")

---

Tags

bitrixcollectors

### Embed Badge

![Health badge](/badges/arrilot-bitrix-collectors/health.svg)

```
[![Health](https://phpackages.com/badges/arrilot-bitrix-collectors/health.svg)](https://phpackages.com/packages/arrilot-bitrix-collectors)
```

###  Alternatives

[composer/installers

A multi-framework Composer library installer

1.4k136.0M6.0k](/packages/composer-installers)[andreyryabin/sprint.migration

bitrix migration module

205195.8k2](/packages/andreyryabin-sprintmigration)[digitalwand/digitalwand.admin_helper

API for custom admin interface in Bitrix by DigitalWand and Notamedia agency

15633.5k3](/packages/digitalwand-digitalwandadmin-helper)[andrey-tech/bitrix24-api-php

Обертка на PHP7+ для работы с API Битрикс24 с использованием механизма входящих вебхуков, троттлингом запросов и логированием в файл

9874.2k](/packages/andrey-tech-bitrix24-api-php)[bitrix-expert/bbc

Bitrix basis components

10242.9k1](/packages/bitrix-expert-bbc)[notamedia/console-jedi

Console application for CMS Bitrix

8942.5k1](/packages/notamedia-console-jedi)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
