This is absolutely true. Besides, adding a new access level automatically 
implies that you'll probably never be able to extend it to protected as 
well, because you'd need yet another access level and I really doubt people 
are going to want to do that. But at that point, it would be too late to 
revert back to a readonly keyword, since the whole world is using the new 
publicly readable access level already. Choosing to go for a new access 
level can turn out to be a really big mistake in the long run.

Like you, I don't see why a 'readable' keyword should make things any more 
complicated for beginners, because indeed, it is optional and beginners will 
simply not use it. To me, this only shows the strength of PHP: suitable for 
beginners and suitable for the enterprise.

Ron


"Jason Garber" <[EMAIL PROTECTED]> schreef in bericht 
news:[EMAIL PROTECTED]
> Hello Zeev,
>
>  In the same way that public readonly properties would be useful
>  from the global scope, protected readonly properties would be just
>  as useful to those of us who spend their php-lives writing base
>  classes (like me) for others to extend and use.
>
>  I would imagine that the Zend Framework will encounter the
>  (performance based) need for this eventually - I already have.
>
>  That being said, an access level that means "public readonly" would
>  be very good - but taking it the whole way would be a lot better.
>
>  Considering that it is an optional keyword, and will only be used
>  where __get(), __set() used to be used - it won't confuse the end
>  users who do not care about it.  (get/set is a lot more complex).
>
>  Thanks!
>
> -- 
> Best regards,
> Jason                            mailto:[EMAIL PROTECTED]
>
> Monday, May 15, 2006, 2:15:50 PM, you wrote:
>
> ZS> I have to say that in second thought (after realizing what you really
> ZS> meant) it sounds like a very useful feature.
>
> ZS> The main thing that worries me is the complexity to the end user,
> ZS> which is already in a pretty bad shape as it is today, and many
> ZS> people here care very little about it, because they can't relate to
> ZS> beginners and average developers.  Private/protected/public is a
> ZS> challenge to many of them (not the theory, real world situations),
> ZS> doubling complexity with a modifier is not a good idea.
>
> ZS> In order to push complexity down I'd avoid making this yet another
> ZS> modifier, and in fact make this an access level, on par with
> ZS> private/protected/public, that would behave like public, except for
> ZS> when outside the object scope (i.e., have it between protected and
> ZS> public).  One of the trickey things would be finding an acceptable
> ZS> name, since 'readonly' implies something which this variable isn't
> ZS> (it's very much writable, from the right places).  Maybe something
> ZS> like 'visible' (of course preferably we need to find something that
> ZS> begins with 'p'...)
>
> ZS> Zeev
>
> ZS> At 02:35 12/05/2006, Jason Garber wrote:
>>>Hello internals,
>>>
>>>   __get() and __set() are great, but 90% of the time, I find myself
>>>   using them to create public readonly properties.
>>>
>>>   The only problem with this is it is horridly inefficient, consuming
>>>   at least 1 function call and one switch statement (or equiv) per
>>>   property read.
>>>
>>>   Would it be possible to create a new object property attribute:
>>>     readonly
>>>
>>>   class xx
>>>   {
>>>      readonly $bar;
>>>   }
>>>
>>>   $o = new xx();
>>>
>>>   $o->bar = 10;
>>>   >>> FATAL ERROR
>>>
>>>
>>>   This way, PHP would allow reading (as if it were public), but only
>>>   allow writing from within the class.
>>>
>>>   I think it could really boost performance of complicated application
>>>   logic that wishes to enforce good visibility.
>>>
>>>   Comments?
>>>
>>>   PS. What brought this up was some serious performance issues in a
>>>   piece of code that I am working with - most of which can be tied
>>>   back to __get() performance.
>>>
>>>--
>>>Best regards,
>>>  Jason Garber                      mailto:[EMAIL PROTECTED]
>>>  IonZoft, Inc.
>>>
>>>--
>>>PHP Internals - PHP Runtime Development Mailing List
>>>To unsubscribe, visit: http://www.php.net/unsub.php 

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

Reply via email to