On Tue, Oct 20, 2020, at 11:08 PM, Mike Schinkel wrote:
> > On Oct 20, 2020, at 2:19 PM, Larry Garfield <la...@garfieldtech.com> wrote:
> > 
> > A while back, Nikita mentioned that it should now be easy to offer an 
> > abbreviated syntax for functions that are just a single expression.  I 
> > decided to take a crack at it and it turns out he was right.  I thus offer 
> > this RFC:
> > 
> > https://wiki.php.net/rfc/short-functions
> > 
> > Hopefully I made a decent enough case for it.  It's entirely a convenience 
> > factor, but I think for many OOP cases (getter methods and factored out 
> > operations) and functional cases (where functions should generally be a 
> > single expression conceptually) it does make the code nicer, more compact, 
> > and more readable.
> 
> Simple and elegant.  I like it.
> 
> I have two comments, but not about the feature.  
> 
> One comment is about the RFC itself, and the other is about a use-case 
> used to justify the feature that could warrant its own bespoke feature.
> 
> 
> 1. The section on "Conditional methods" is really just an argument 
> about the benefits of encapsulating complex logic into well-named 
> functions as you could achieve exactly the same benefit with the 
> existing function syntax.  It does not appear to me that it provides 
> any specific justification for the feature in the RFC. Should it really 
> be part of the RFC?

In pre-RFC discussion, one of the pushbacks I got was "pfft, how common are 
single-line methods anyway?"  That example is mainly to demonstrate "quite 
common, actually, in fact common refactoring patterns tend to produce them a 
lot."  It's not the refactoring itself that benefits, per se, as it is the 
refactoring technique produces functions that would benefit from it.

> 2. In the section "Decorating functions in live code" where you state 
> "Often times, methods exist that are just delegating to some other 
> method, either in the same object or a composed object." I think we 
> could see great benefit from explicitly building delegation into 
> classes much like how Go provides type embedding[1]. For PHP, extending 
> the syntax for traits could be used to support delegation of one class 
> to another embedded class. Can you see this as a potential feature?
> 
> -Mike

I'd be in favor of some kind of automated "delegate this interface's methods to 
this object property" syntax, although that is unrelated to the RFC at hand.

--Larry Garfield

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to