• Час читання ~0 хв
  • 24.08.2022

PHP Pipe Operator – це пакет від Себастьян Лука, який забезпечує реалізацію оператора конвеєра на 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 за допомогою імпровізованого оператора каналу.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297