PHPackages                             arrilot/bitrix-iblock-helper - 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-iblock-helper

AbandonedArchivedLibrary

arrilot/bitrix-iblock-helper
============================

0.3.4(7y ago)2010.4k↓34.4%3MITPHPPHP &gt;=5.6.4

Since Feb 3Pushed 5y ago3 watchersCompare

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

READMEChangelog (10)Dependencies (1)Versions (11)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/6aafc4fdcbca77be006fc448c644c3761e6d251f6e3471c3a512f5adaa3ee4e0/68747470733a2f2f706f7365722e707567782e6f72672f617272696c6f742f6269747269782d69626c6f636b2d68656c7065722f762f737461626c652e737667)](https://packagist.org/packages/arrilot/bitrix-iblock-helper/)

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

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

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

Хэлперы для упрощения работы с инфоблоками/хайлоадблоками
=========================================================

[](#хэлперы-для-упрощения-работы-с-инфоблокамихайлоадблоками)

Данный пакет представляет собой пару классов которые позволяют удобно и производительно получать

1. Идентификаторы инфоблоков по их символьным кодам
2. Различную информацию о хайлоадблоках по названию таблицы

Производительность достигается за счёт того, что мы не запрашиваем из БД данные каждый раз когда вызывается какой-либо из методов Вместо этого данные получаются из БД один раз и сразу по всем инфоблокам/хайлоадблокам и опционально могут еще и кэшироваться

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

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

`composer require arrilot/bitrix-iblock-helper`

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

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

### Инфоблоки

[](#инфоблоки)

Рекомендуемый способ использования - добавить в проект следующую функцию-хэлпер:

```
/**
 * Получение ID инфоблока по коду (или по коду и типу).
 *
 * @param string $code
 * @param string|null $type
 * @return int
 *
 * @throws RuntimeException
 */
function iblock_id($code, $type = null)
{
    return Arrilot\BitrixIblockHelper\IblockId::getByCode($code, $type);
}
```

Допустим, есть инфоблок типа `other` и с символьным кодом `articles`.

Его ID можно получить при помощи одного из вариантов:

1. `$id = iblock_id('articles', 'other')` - строгий вариант
2. `$id = iblock_id('other:articles')` - тоже самое
3. `$id = iblock_id('articles')` - более удобный в случае когда коды инфоблоков можно считать уникальными.

Независимо от количества вызовов `iblock_id()` запрос в базу будет выполнен только один раз за и получит данные по всем инфоблокам.

### Хайлоадблоки

[](#хайлоадблоки)

Рекомендуемый способ использования - добавить в проект следующие функции-хэлперы:

```
/**
 * Получение данных хайлоадблока по названию его таблицы.
 * Всегда выполняет лишь один запрос в БД на скрипт и возвращает массив вида:
 *
 * array:3 [
 *   "ID" => "2"
 *   "NAME" => "Subscribers"
 *   "TABLE_NAME" => "app_subscribers"
 * ]
 *
 * @param string $table
 * @return array
 */
function highloadblock($table)
{
    return Arrilot\BitrixIblockHelper\HLblock::getByTableName($table);
}

/**
 * Компилирование и возвращение класса для хайлоадблока для таблицы $table.
 *
 * Пример для таблицы `app_subscribers`:
 * $subscribers = highloadblock_class('app_subscribers');
 * $subscribers::getList();
 *
 * @param string $table
 * @return string
 */
function highloadblock_class($table)
{
    return Arrilot\BitrixIblockHelper\HLblock::compileClass($table);
}

/**
 * Компилирование сущности для хайлоадблока для таблицы $table.
 * Выполняется один раз.
 *
 * Пример для таблицы `app_subscribers`:
 * $entity = \Arrilot\BitrixIblockHelper\HLblock::compileEntity('app_subscribers');
 * $query = new Entity\Query($entity);
 *
 * @param string $table
 * @return \Bitrix\Main\Entity\Base
 */
function highloadblock_entity($table)
{
    return Arrilot\BitrixIblockHelper\HLblock::compileEntity($table);
}
```

### Кэширование

[](#кэширование)

Для увеличения быстродействия пакет использует два уровня кэша для массива идентификаторов Необходимо понимать как эти уровни работают, чтобы избежать некоторых подводных камней.

Первый уровень (локальный кэш) - кэширование массива данных в статическую переменную класса. По-умолчанию - включён. Это кэширование работает только в рамках одного HTTP запроса, но очень полезно потому что позваляет избежать множества запросов в БД.

Второй уровень (внешний кэш) - кэширование еще и во внешнем кэше через стандартный механизм кэширования Битрикса на N минут. По-умолчанию - выключен. Он может быть полезен, например, если на проекте есть очень много инфоблоков.

Для включения необходимо добавить в `init.php` (или куда-то туда):

```
IblockId::setCacheTime(30 * 60); // кэшируем ID всех инфоблоков на 30 минут
HLblock::setCacheTime(30 * 60); // кэшируем данные всех хайлоадблоков на 30 минут
```

#### Сброс кэша

[](#сброс-кэша)

Пакет предоставляет несколько методов для сброса кэша. Зачастую их использование не требуется, но бывают кейсы когда без них никуда.

```
// Очистка первого уровеня кэша.
// По-сути единственный кейс, когда он нужен - когда вы добавили инфоблок/хлблок и хотите в том же запросе с ним работать через `iblock_id()`.
IblockId::flushLocalCache();
HLblock::flushLocalCache();

// Очистка второго уровня кэша.
// Нужна в случае, если вы его во-первых включили, а во-вторых добавили инфоблок через админку/код и не готовы ждать инвалидации этого кэша.
IblockId::flushExternalCache();
HLblock::flushExternalCache();

// Также можно в любой момент выключить использование внешнего кэша для текущего запроса через
IblockId::setCacheTime(0);
HLblock::setCacheTime(0);
```

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.9% 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 ~92 days

Recently: every ~133 days

Total

10

Last Release

2563d 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 (16 commits)")[![OAPrilepa](https://avatars.githubusercontent.com/u/5359198?v=4)](https://github.com/OAPrilepa "OAPrilepa (2 commits)")

---

Tags

bitrixiblock

### Embed Badge

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

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

###  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)[bitrix-expert/tools

Helpers for developers on Bitrix

3720.8k1](/packages/bitrix-expert-tools)[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)
