operator potoku PHP to pakiet autorstwa Sebastiaan Luca, który zapewnia implementację operatora potoku w PHP w przestrzeni użytkownika. niedawny RFC zaproponował tę funkcję dla PHP 8.1, ale został odrzucony większością głosów „nie”. Ten pakiet ma na celu zniwelowanie braku natywnego operatora potoku poprzez pobranie wartości i wykonanie na niej jednej lub więcej akcji:
$subdomain = Pipe::from('https://blog.sebastiaanluca.com')
->parse_url()
->end()
->explode('.', PIPED_VALUE)
->reset()
->get();
// "blog"
Pod maską Pipe< Klasa /code> wywoła natywne metody PHP, takie jak
parse_url()
, end()
itp., jednak użycie łączenia metod pomaga w czytelności kodu i jest potencjalnie mniej podatne na błędy niż kod jednowierszowy lub proceduralny, taki jak ten:
$subdomain = 'https://blog.sebastiaanluca.com/';
$subdomain = parse_url($subdomain, PHP_URL_HOST);
$subdomain = explode('.', $subdomain);
$subdomain = reset($subdomain);
Kiedy potrzebujesz więcej elastyczność, ten pakiet obsługuje również niestandardowe zamknięcia i użycie metod klas:
// Closure
Pipe::from('string')
->pipe(fn(string $value): string => 'prefixed-' . $value)
->get();
// Class-based methods
Pipe::from('HELLO')
->pipe([$this, 'lowercase'])
->get();
Możesz dowiedzieć się więcej o tym pakiecie, uzyskać pełne instrukcje instalacji i wyświetlić kod źródłowy na GitHubie. Autor napisał o tym pakiecie również na swoim blogu: Włączanie łączenia metod PHP z prowizorycznym operatorem potoku.