This is an alternatives to the declined PHP Pipe Operator RFC.
The idea was first introduced by Taylor Otwell on Twitter. I added some feature, such as directly call the function on the piping value, and directly accessing attribute of the piping value.
pipe('test@example.com')
(md5(...))
(fn ($md5) => 'https://gravatar.com/avatar/' . $md5)
->endpipe;
pipe('test@example.com')
(GravatarUrl::make(...))
->url // `url` is an attribute of GravatarUrl
->endpipe;
pipe('test@example.com')
(GravatarUrl::make(...))
->size(200) // `size` is a method of GravatarUrl
->endpipe;
MIT License