Документация для разработчиков
Темная тема

Converter

Методы


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

Соответственно, на стороне фронтенда должен быть удобный класс, предоставляющий доступ к данным об элементах CRM или других сущностей.

Заготовкой такого класса является javascript-экстеншн crm.model.

Чтобы данные для этого класса были правильно подготовлены необходим сервис Service\Converter.

Это абстрактный класс, для каждого типа модели необходимо иметь свою реализацию.

Этот же сервис используется для формирования данных в REST-методах.


Метод Описание С версии
abstract public function toJson($model): array;
Абстрактный класс, преобразующий данные о модели $model в json.
public function convertKeysToCamelCase(array $data): array
Рекурсивно преобразует ключи в массиве $data в camelCase нотацию.

Наследники


Service\Converter\OrmObject

Самый простой вид конвертера. Метод toJson принимает на вход EntityObject и преобразует в json актуальные значения объекта.


Service\Converter\Item

Преобразует в json данные об элементе CRM.

Этот конвертер вызывается автоматически в методе Item::jsonSerialize().


Service\Converter\Type

Преобразует в json данные о настройках смарт-процесса. На вход принимает orm-объект \Bitrix\Crm\Model\Dynamic\Type.

Работает в паре с js-экстеншном crm.type-model.


Service\Converter\Stage

Преобразует в json данные о стадии. На вход принимает orm-объект \Bitrix\Crm\EO_Status.

Примеры


use Bitrix\Crm\Service;

$factory = Service\Container::getInstance()->getFactory(\CCrmOwnerType::Quote);
$stages = $factory->getStages();
$converter = Service\Container::getInstance()->getStageConverter();

$json = [];
foreach ($stages as $stage)
{
	$json[] = $converter->toJson($stage);
}
© «Битрикс», 2001-2024, «1С-Битрикс», 2024