оператор PHP Pipe — это пакет, созданный Sebastian Luca, который предоставляет пользовательскую реализацию оператора канала в PHP. В недавнем RFC эта функция была предложена для PHP 8.1, но большинство голосов отклонило его. р>
Этот пакет призван восполнить недостаток встроенного оператора канала, беря значение и выполняя над ним одно или несколько действий:
$subdomain = Pipe::from('https://blog.sebastiaanluca.com')
->parse_url()
->end()
->explode('.', PIPED_VALUE)
->reset()
->get();
// "blog"
Под капотом Pipe< /code> вызовет собственные методы PHP, такие как
parse_url()
, end()
и т. д., однако использование цепочки методов улучшает читабельность кода и потенциально менее подвержено ошибкам, чем однострочный или процедурный код, подобный следующему:
$subdomain = 'https://blog.sebastiaanluca.com/';
$subdomain = parse_url($subdomain, PHP_URL_HOST);
$subdomain = explode('.', $subdomain);
$subdomain = reset($subdomain);
Когда вам нужно больше гибкости, этот пакет также поддерживает настраиваемые замыкания и использование методов класса:
// Closure
Pipe::from('string')
->pipe(fn(string $value): string => 'prefixed-' . $value)
->get();
// Class-based methods
Pipe::from('HELLO')
->pipe([$this, 'lowercase'])
->get();
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на GitHub. Автор также написал об этом пакете в своем блоге: Включение цепочки методов PHP с импровизированным оператором канала.