PHP Pipe Operator – це пакет від Себастьян Лука, який забезпечує реалізацію оператора конвеєра на PHP для користувача. У останньому RFC ця функція була запропонована для PHP 8.1, але була відхилена більшістю голосів «ні». p
Цей пакунок має на меті подолати відсутність рідного оператора каналу, беручи значення та виконуючи над ним одну або кілька дій:
$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 за допомогою імпровізованого оператора каналу.