Laravel Packages

PHP Pipe Operator Package

Published
PHP Pipe Operator Package image

PHP Pipe Operator is a package by Sebastiaan Luca that provides a userland implementation of the pipe operator in PHP. A recent RFC proposed this feature for PHP 8.1 but is declined with a majority "no" vote.

This package aims to bridge the lack of native pipe operator by taking a value and performing one or more actions on it:

$subdomain = Pipe::from('https://blog.sebastiaanluca.com')
->parse_url()
->end()
->explode('.', PIPED_VALUE)
->reset()
->get();
 
// "blog"

Under the hood, the Pipe class will call the native PHP methods such as parse_url(), end(), etc., however, using method chaining helps the readability of code and is potentially less error-prone than a one-liner or procedural code like the following:

$subdomain = 'https://blog.sebastiaanluca.com/';
$subdomain = parse_url($subdomain, PHP_URL_HOST);
$subdomain = explode('.', $subdomain);
$subdomain = reset($subdomain);

When you need more flexibility, this package also supports custom closures and the use of class methods:

// Closure
Pipe::from('string')
->pipe(fn(string $value): string => 'prefixed-' . $value)
->get();
 
// Class-based methods
Pipe::from('HELLO')
->pipe([$this, 'lowercase'])
->get();

You can learn more about this package, get full installation instructions, and view the source code on GitHub. The author also wrote about this package on his blog: Enabling PHP method chaining with a makeshift pipe operator.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Queue totalSize() and JobInterrupted Event in Laravel 13.31 image

Queue totalSize() and JobInterrupted Event in Laravel 13.31

Read article
Find Unexpected Test Inputs with Fuzz for Pest image

Find Unexpected Test Inputs with Fuzz for Pest

Read article
Laravel Rulebook: Business Rules That Change by Date image

Laravel Rulebook: Business Rules That Change by Date

Read article
Taylor disabled GitHub Issues on most Laravel open-source packages. image

Taylor disabled GitHub Issues on most Laravel open-source packages.

Read article
Exclude Vendor and Default Commands in `php artisan dev` image

Exclude Vendor and Default Commands in `php artisan dev`

Read article
The Laracon Archive image

The Laracon Archive

Read article