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); }
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.