---
title: "Pipeline - послідовна обробка"
url: https://laravelukraine.com/blog/pipeline-poslidovna-obrobka
author: "Олексій Бабінцев"
date: 2026-09-08
---

# Pipeline - послідовна обробка

Pipeline пропускає дані через серію кроків, де кожен крок обробляє вхід і передає результат наступному.

### Яку проблему вирішує

Багатоетапна обробка, записана як один довгий метод, погано читається й важко змінюється: щоб додати, прибрати чи переставити крок, доводиться переписувати спільний код.

### Як вирішує

Кожен крок - окремий клас із методом `handle($payload, Closure $next)`, що трансформує дані й передає їх далі через `$next()`. Кроки складаються в послідовність, яку легко перевпорядкувати. У Laravel є готовий `Illuminate\Pipeline\Pipeline` - саме на ньому побудований стек middleware.

```php
use Illuminate\Pipeline\Pipeline;

$result = app(Pipeline::class)
  ->send($payload)
  ->through([
    SanitizeInput::class,
    ValidateEmail::class,
  ])
  ->thenReturn();
```

### Де застосовувати

- Багатоетапна обробка даних чи запиту: санітизація, валідація, трансформація.
- Коли набір кроків змінюється або має конфігуруватися.

### Плюси та мінуси

- **+** Кроки легко додавати, прибирати чи міняти місцями, не торкаючись інших.
- **+** Кожен крок ізольований і тестується окремо.
- **−** Близький до Chain of Responsibility; різниця в тому, що крок зазвичай не "зупиняє" ланцюг, а трансформує дані і завжди передає їх далі.
- **−** Для двох-трьох простих перетворень звичайна послідовність викликів зрозуміліша за абстракцію пайплайна.
