PHP 8.5: pipe-оператор для пайплайна данных в Bitrix (агент, API)
Обработка входящих данных цепочкой через pipe-оператор |> (PHP 8.5): строка → trim → json_decode → фильтр. Для агентов и API в 1C-Битрикс.
Как использовать
- Скопируйте нужный фрагмент кода.
- Вставьте в свой проект и при необходимости измените под задачу.
- Проверьте зависимости и окружение (версии, переменные).
В PHP 8.5 добавлен pipe-оператор (|>): значение слева передаётся первым аргументом в callable справа. Цепочка читается сверху вниз без вложенных скобок. Удобно в агентах и API Bitrix, когда данные проходят этапы: сырой ввод → нормализация → декодирование → фильтрация.
<?php
/**
* Обработка входящей строки запроса (агент, REST, вебхук).
* PHP 8.5+: pipe передаёт результат предыдущего шага в следующий.
*/
function processIncomingPayload(string $raw): array
{
return $raw
|> trim(...)
|> fn(string $s) => json_decode($s, true) ?? []
|> fn(array $data) => array_filter($data, fn($v) => $v !== null && $v !== '');
}
// Пример: данные от внешнего сервиса или POST-тело
$payload = processIncomingPayload($_POST['data'] ?? '{}');
Usage:
// В агенте или обработчике REST
$body = file_get_contents('php://input');
$data = processIncomingPayload($body);
// Или из опции/параметра
$json = \Bitrix\Main\Config\Option::get('mymodule', 'webhook_payload', '{}');
$data = processIncomingPayload($json);
Notes:
⚠️ Синтаксис по документации PHP 8.5: $value |> callable(...) эквивалентно callable($value). Использовать ... для first-class callable (например, trim(...)). В Bitrix убедитесь, что на сервере установлен PHP 8.5+.