Re: [RFC] Pipe Operator (again)

From: Date: Tue, 03 Jun 2025 15:41:08 +0000
Subject: Re: [RFC] Pipe Operator (again)
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
On Tue, Jun 3, 2025, at 2:59 AM, Dmitry Derepko wrote:
>> 
>> Pipe and compose are importantly different operations.  I've had user-space
>> implementations of both available for years in crell/fp:  https://github.com/Crell/fp/blob/master/src/composition.php
>> I'd love to have a compose operator natively in PHP, too.  The RFC for that is already
>> written, just needs code.  I hope to formally propose it soon:  https://wiki.php.net/rfc/function-composition
> Hmm, that's great, but looks like we are missing something.
>
> 1. Would you propose the RFC to 8.5? I think it should be proposed with 
> the new pipe operator any way

I am working with someone on the implementation.  As soon as that's done I want to post it. 
Whether it manages to get into 8.5 at this point is an open question.

> 2. RFC early feedback
>
> There is no big difference in DX with the new operator "+" for closures:
> - + operator may be overridden in some extensions and it also may 
> implement __invoke. What's expected behavior? It will be totally unclear

I expect the overlap there to be tiny, so it will rarely be encountered.  As to which
"wins", I'd think probably the extension.

> - code examples from the rfc: https://3v4l.org/n7UB0 vs 
> https://3v4l.org/tOlft the first approach is better for me
> because it 
> may be batch-processed / combined / filtered / modified easily. So 
> taking my first message there are not so many changes: 
> https://3v4l.org/ncpEE
>
> Just try to imagine how to work with the composition and how it 
> perfectly works now: https://3v4l.org/ArK2O

If you want to do it that way, Crell/fp has you covered, have fun.  But the whole point of the RFC
is to provide a native operator for concatenating functions.  Decomposing/deconcatenating an already
composed function chain is... not a thing.  

> By the way, RFC describes userland "compose" function performance 
> problems, but there is no suggestion to make it natively, why so? 

Uh.  That's the entire point of the RFC?  Make a native compose operator that isn't even a
function.  

--Larry Garfield


Thread (42 messages)

« previous php.internals (#127561) next »