Re: Revisit RFC “Property Accessors Syntax 1.2”

From: Date: Mon, 19 Dec 2016 23:02:05 +0000
Subject: Re: Revisit RFC “Property Accessors Syntax 1.2”
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-97446@lists.php.net to get a copy of this message
I see, that makes a lot of sense. Sadly, I am neither a C developer nor do I understand the PHP interpreter codebase in the slightest. At least I now understand why the RFC was rejected, maybe that will comfort me when I cry myself to sleep tonight :P On 19 Dec 2016, 23:47 +0100, Larry Garfield <larry@garfieldtech.com>, wrote: > On 12/19/2016 02:57 PM, ilija.tovilo@me.com wrote: > > Hi everyone > > > > There was an RFC about a C#-like property syntax almost four years ago that got declined: > > https://wiki.php.net/rfc/propertygetsetsyntax-v1.2 > > > > It failed by only 2-3 votes. In my opinion, PHP is still in need of this feature as it > > would make the language much more expressive. Let me start by defining the problem. First of all, > > almost all PHP frameworks hide their variables behind getters and setters. Here are some of the > > reasons why that is a good idea, I’m sure there are many more: > > > > - Ability to sanitize input > > - Ability to lazily load data when requested (getter was called) > > - Ability to expose only getter or setter publicly > > - Easily mockable accessors for unit tests > > - Ability to execute arbitrary code when accessors are called > > - Modifiable business logic without breaking the API > > > > Here are some of the negatives, though there are probably more here as well: > > > > - Large boilerplate for normal getters/setters > > - Inconsistent syntax for reading/writing data > > - Calling a method for setting data instead of using the more intuitive > > = operator > > - Calling a method for accessing foreign variables while accessing private variables > > directly > > - Inability to use built in assignment operators like .=, +=, -=, etc. > > - Disregard of the DRY principle > > > > The positives clearly outweigh the negatives as they are mostly syntactical. This is > > probably why using getters/setters everywhere has been a good-enough solution for such a long time. > > Because of that, just like the positives, the negatives have become a part of the language. Clearly, > > abandoning getters and setters is no option for anyone. Nonetheless, the RFC I linked above offers a > > way to get rid of the negatives without sacrificing any of the positives. > > > > Are there still any people who would like to see this happening just as much as I do? > > I’m wondering if some of the people who have voted against the RFC might have changed > > their opinion or vice versa. > > > > Many thanks for reading! > > > > Regards, > > Ilija > > As I understand it from those involved, most people did want that > feature. I still do. :-) However, there is as of yet no confirmed way > to add it without more of a performance hit than many folks are willing > to accept. That is, it's not the concept people object to, just the > implementation. > > If someone can figure out how to make that work with a small enough > performance hit (where 0 would be ideal, but I don't know if that's even > possible), that person would make a lot of devs (including me) very very > happy. I am, sadly, not such a person. > > --Larry Garfield > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php >

« previous php.internals (#97446) next »