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) | Метод-конструктор. Параметры:
| |
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-2024, «1С-Битрикс», 2024