compileEntity
\Bitrix\Iblock\ORM\ElementEntity|false public static \Bitrix\Iblock\IblockTable::compileEntity( string|\Bitrix\Iblock\Iblock $iblockApiCode );
Создает ORM-описание элементов инфоблока и класс для работы с ними. Статический метод.
Параметры
| Параметр | Описание |
|---|---|
$iblockApiCode |
Символьный код API инфоблока из поля API_CODE либо объект \Bitrix\Iblock\Iblock. Для объекта метод загружает API_CODE при необходимости |
Возвращаемое значение
Объект \Bitrix\Iblock\ORM\ElementEntity. Если инфоблок не найден, его API_CODE пуст или имя класса данных пусто, возвращает false.
Особенности
Параметр не имеет типа в PHP-объявлении. Для скалярного значения метод ищет запись по API_CODE; идентификатор ID и символьный код CODE для этого поиска не используются.
Имя класса имеет вид Bitrix\Iblock\Elements\Element{ApiCode}Table: первая буква кода становится заглавной. Если класс уже загружен, метод возвращает его ORM-описание.
При VERSION = 1 базовый класс — ElementV1Table, иначе — ElementV2Table. Метод добавляет связь SECTIONS с разделами и связи со свойствами по их символьным кодам. Свойства с пустым кодом пропускает.
Для пользовательского типа свойства метод вызывает GetORMFields, если такой обработчик задан. Ошибки ORM могут привести к исключениям \Bitrix\Main\ArgumentException, \Bitrix\Main\ObjectPropertyException и \Bitrix\Main\SystemException.
Пример
Пример выполняется в окружении с подключенным ядром Bitrix.
<?php
use Bitrix\Iblock\IblockTable;
use Bitrix\Main\Loader;
try
{
if (!Loader::includeModule('iblock'))
{
echo 'Не удалось подключить модуль iblock';
return;
}
$apiCode = 'Catalog'; // API_CODE существующего инфоблока
$entity = IblockTable::compileEntity($apiCode);
if ($entity === false)
{
echo 'Не удалось получить ORM-описание элементов';
return;
}
echo 'ORM-описание элементов готово';
}
catch (\Throwable $exception)
{
echo 'Ошибка: ' . htmlspecialchars($exception->getMessage(), ENT_QUOTES, 'UTF-8');
}