On Sat, Oct 13, 2012 at 11:29 AM, Nikita Popov <nikita....@gmail.com> wrote:

> On Sat, Oct 13, 2012 at 10:06 AM, Benjamin Eberlei <kont...@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;
>

Ah yes, of course. Sorry, stupid me :-)



>
> 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
>

Reply via email to