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 <la...@garfieldtech.com>, wrote: > On 12/19/2016 02:57 PM, ilija.tov...@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 >