PHP
#php#php-8-5#bitrix#pipe#agent#api#pipeline

PHP 8.5: pipe-оператор для пайплайна данных в Bitrix (агент, API)

Обработка входящих данных цепочкой через pipe-оператор |> (PHP 8.5): строка → trim → json_decode → фильтр. Для агентов и API в 1C-Битрикс.

Как использовать

  1. Скопируйте нужный фрагмент кода.
  2. Вставьте в свой проект и при необходимости измените под задачу.
  3. Проверьте зависимости и окружение (версии, переменные).

В 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+.