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); }