Re: Property Accessors v1.2

From: Date: Sat, 13 Oct 2012 09:29:50 +0000
Subject: Re: Property Accessors v1.2
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-63387@lists.php.net to get a copy of this message
On Sat, Oct 13, 2012 at 10:06 AM, Benjamin Eberlei <kontakt@beberlei.de> wrote: > Can we discuss the removal of automatic get; set; again? For me that was > the best feature of the whole RFC, essentially allowing to define a > property with getter/setter in 1 LOC. Allowing future overriding of that > getter/Setter if the application required it. > > This is absolutely essential for database backed recods which will have > tons of those property accessors. Now if i apply PSR coding styles to > accessors, then i end up with 11 LOC for accessors defining a property, a > property accessor and get/set functions, compared to 10 LOC with usual > getter/setters. Not sure I quite understand you. What prevents you from just using a normal public property? public $property; Accessors give you the ability to add alternative behavior for the property lateron (this is actually the main use I personally see in this RFC: Not actually using it, but having the possibility of using it). The only place (which I see off the top of my head) where property / automatic property makes a difference is interfaces. In the current implementation interfaces can only define properties with accessors. So: interface Foo { // this is okay public $abc { get; set; } // this is invalid public $abc; } And similarly you can't implement the public $abc { get; set; } definition from the interface using a plain property. I think that properties should be definable in interfaces, or at a normal property "public $abc;" should satisfy the interface "public $abc { get; set; }" (I mean, it kinda does from a functional point of view, right?) Nikita

« previous php.internals (#63387) next »