PHP code example of arrilot / bitrix-iblock-helper
1. Go to this page and download the library: Download arrilot/bitrix-iblock-helper library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
arrilot / bitrix-iblock-helper example snippets
/**
* Получение 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);
}
/**
* Получение данных хайлоадблока по названию его таблицы.
* Всегда выполняет лишь один запрос в БД на скрипт и возвращает массив вида:
*
* 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);
}
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);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.