notiziephp.it

Introduzione a Piper: una libreria PHP basata sull'operatore pipe

Traduzione da Spatie
13 Maggio 2026 Tempo di lettura: 2 minuti
Introduzione a Piper: una libreria PHP basata sull'operatore pipe

Quando ho sperimentato con Elixir qualche anno fa, mi sono innamorato dell'operatore pipe |>. Da allora, ho sempre sognato di avere uno strumento simile in PHP.

L'anno scorso, finalmente ce l'abbiamo! Purtroppo, le funzioni standard di manipolazione di array e stringhe in PHP non sono esattamente note per la loro coerenza API, il che rende l'operatore pipe scomodo da usare.

Ho portato gli eccellenti helper di raccolta e stringhe di Laravel a un'API ottimizzata per l'operatore pipe. Piper è un tentativo di avvolgere la libreria standard per renderla compatibile con l'operatore pipe.

use function Spatie\Piper\Arr\{filter, join, map};
use function Spatie\Piper\Str\{prefix, suffix};
[1, 2, 3, 4, 5, 6]
    |> filter(fn (int $i) => $i % 2 === 0)
    |> map(fn (int $i) => pow($i, 2))
    |> join(', ', ', and ')
    |> prefix('The winning numbers are ')
    |> suffix('.');
// "The winning numbers are 4, 16, and 36."

Ho scritto un'introduzione tecnica al pacchetto sul blog di Spatie. La documentazione può essere consultata qui, e il repository è ospitato su GitHub.

La parte triste (forse?)

Non ho mai visto un agente di coding restituire codice usando un operatore pipe, a meno che non glielo abbia esplicitamente chiesto. Ha senso: i modelli che usiamo sono addestrati su anni di dati storici, e l'operatore pipe è una funzionalità piuttosto recente.

Potrei non usare mai questa libreria. Potrei non usare mai l'operatore pipe. La programmazione agentica sta portando la sintassi a un punto morto. Le nuove API di programmazione che portano benefici all'esecuzione verranno spinte avanti. Ma l'intera battaglia per far apparire il codice bello sembra essere stata spenta, poiché l'AI ci sta spostando gradualmente verso l'attenzione ai risultati piuttosto che alla pulizia riga per riga del codice. Non è necessariamente una cosa negativa, ma parte del nostro mestiere potrebbe andare persa lungo il percorso.

Ironia della sorte, mi sono convinto a scrivere effettivamente questo perché ho l'AI a mia disposizione. Portare manualmente 234 funzioni e una suite di test completa non è qualcosa che non vedevo l'ora di fare. Invece, il tempo speso per costruire e rifinire questo pacchetto è misurabile in ore.

In ogni caso, questo è un esperimento divertente da condurre. E non vedo l'ora di armeggiare ulteriormente e provarlo in alcuni progetti reali.

Condividi su: LinkedIn

Altri articoli recenti