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

Converter

\Bitrix\Main\Engine\Response\Converter - класс, выполняющий конвертацию строк или массивов, содержащих строки.

При написании backend API часто требуется соблюдать формат и стилистику данных, которые уходят на frontend. Например, преобразовать все ключи из snake_case в camelCase. Или сделать иные преобразования. Чтобы не делать это "руками", можно использовать класс Response\Converter, который умеет преобразовывать:

  • camelCase -> snake_case Response\Converter::TO_SNAKE
  • snake_case -> camelCase Response\Converter::TO_CAMEL
  • Response\Converter::TO_SNAKE_DIGIT
  • some string -> SOME STRING Response\Converter::TO_UPPER
  • SOME STRING -> some string Response\Converter::TO_LOWER
  • SOME STRING -> sOME STRING Response\Converter::LC_FIRST
  • some string -> Some string Response\Converter::UC_FIRST
  • Применять преобразования к ключам ассоциативного массива Response\Converter::KEYS
  • Применять преобразования к значениям массива Response\Converter::VALUES
  • Выполнять преобразования рекурсивно для массива и вложенных массивов Response\Converter::RECURSIVE

Методы

Метод Описание С версии
__construct(
   $format
)
Метод-конструктор. Параметры:
  • $format {int} Перечисление необходимых преобразований. Для этого используются битовые маски. Доступные варианты можно найти в константах класса \Bitrix\Main\Engine\Response\Converter.
toJson(
)
Создает объект, сразу устанавливая формат для преобразования в camelCase массив \Bitrix\Main\Engine\Response\Converter::OUTPUT_JSON_FORMAT.
process($data)
Параметр: $data {string|array} Данные, над которыми необходимо выполнить преобразования.
getFormat()
int. Получение текущего формата, в котором перечислены преобразования.
setFormat($format)
Параметр: $format {int} Перечисление необходимых преобразований. Для этого используются битовые маски. Доступные варианты можно найти в константах класса \Bitrix\Main\Engine\Response\Converter.

Пример

use \Bitrix\Main\Engine\Response\Converter;

$converter = new Converter(Converter::LC_FIRST | Converter::TO_CAMEL);
echo $converter->process('la_la_land'); //laLaLand

$converter = new Converter(Converter::OUTPUT_JSON_FORMAT);
$converter->process([
    'CATEGORIES' => [
        [
            'ID' => 1,
            'NAME' => 'Foods',
        ],
        [
            'ID' => 12,
            'NAME' => 'Auto',
        ]
    ]
]);
/**
[
  'categories' => [
    [
      'id' => 1,
      'name' => 'foods',
    ],
    [
      'id' => 12,
      'name' => 'auto',
    ],
  ],
]
**/

$converter = new Converter(Converter::TO_SNAKE_DIGIT | Converter::VALUES | Converter::KEYS | Converter::RECURSIVE);
$converter->process([
    'property109',
    'props' => [
        'element1' => [
            'property210'
        ],
    ]
]);
/**
[
'property_109',
'props' => [
    'element_1' => [
        'property_210'
    ],
];
**/

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх