On 2012-07-16, Amaury Bouchard <ama...@amaury.net> wrote:
> --f46d0446312cc5e06104c4f42161
> Content-Type: text/plain; charset=ISO-8859-1
>
> My point is not to add two ways to do the same thing.
> What I'm humbly suggesting to do is to keep the core idea of the
> existing RFC (make things easier when you have to write
> getters/setters), and think about another syntax for managing reading
> and writing visibilities.

My first impression, being familiar with the other proposal, was that
this looked like duplication. However, on looking at the examples, I
have to admit that I really like the approach -- in many cases, it
obviates the need for a getter entirely. It would help dry up a lot of
code, reduce the number of method calls overall, and still enforce
internal logic when setting the value in the first place.

I like it; it feels elegant.


> 2012/7/16 Andrew Faulds <ajf...@googlemail.com>
>
>> How much syntactic sugar do we really need? Why add two ways to do
>> something?
>>
>> On 16 July 2012 16:24, Amaury Bouchard <ama...@amaury.net> wrote:
>> > 2012/7/16 Nikita Popov <nikita....@gmail.com>
>> >
>> >> I'm not sure I really understand what this adds over the existing
>> >> getter/setter proposal. read-only and write-only should cover the most
>> >> common cases. If you do need visibility control, it is possible too:
>> >>
>> >> public $property {
>> >>     get { ... }
>> >>     protected set { ... }
>> >> }
>> >>
>> >> So what does this proposal add to it?
>> >>
>> >>
>> > Yes, but only if you have to write an accessor.
>> > If you just want an attribute that is:
>> > - readable from everywhere
>> > - writable from the current class only
>> >
>> > With my syntax:
>> >     public:private $a;  (read it aloud "public reading, private writing")
>> >
>> > With the existing RFC:
>> >     public $a {
>> >         private set { $this->a = $value; }
>> >     }
>> >
>> > Which one is better? Why should I write code for that?
>> >
>> > If you read the existing RFC, you'll see that all examples involve a
>> > specific case: when you have a "fake" attribute, which manipulates date
>> > stored in other attributes. The given example is an $Hours attributes,
>> > which is calculated from the private $Seconds attribute.
>> > Again, it could be very useful. But it doesn't work all the time.
>>
>>
>>
>> --
>> Andrew Faulds (AJF)
>> http://ajf.me/
>>
>
> --f46d0446312cc5e06104c4f42161--


-- 
Matthew Weier O'Phinney
Project Lead            | matt...@zend.com
Zend Framework          | http://framework.zend.com/
PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc

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

Reply via email to