-----Original Message----- From: Rasmus Schultz [mailto:ras...@mindplay.dk] Sent: Saturday, February 04, 2012 10:01 AM To: internals@lists.php.net Subject: [PHP-DEV] Re: internals Digest 4 Feb 2012 09:08:29 -0000 Issue 2549
> Why can't the read-only and write-only keywords be implicit instead of > explicit? I've never seen another language where you have to explicitly > indicate what you're doing. At > best, it acts an extra fail-safe to prevent > making errors - at worst, it just means more redundant code to maintain, more > ways to make errors. Do the benefits really outweigh > the value of this? The read-only and write-only keywords act a little differently. Without them, attempting a set on an accessor without a setter defined will cause __set() to be called whereas with the read-only it will produce an error. The inverse is true for write-only. I attempted to keep the ability to have lazy initializing of properties via accessors, but that could be written in php slightly differently if the read-only/write-only keywords were not present (due to guards). Doesn't particularly matter to me. > Regarding automatic implementations - according to the wiki, the backing > field is implemented as public. Is that correct? Most other languages don't > even expose the > existence of the backing field. Would it not be more correct to implement an > auto-backing field as protected? The reason for implementing accessors in the > first place, is > usually to prevent direct access to an underlying field. Makes sense, in C# these backing fields are completely inaccessible directly, would that be even better in this case or would protected suffice? > Since a high degree of explicitness seems to be a design goal, it would > probably make more sense if you had to use reflection to access a > backing-field without invoking the > accessor-methods. > Looks nice otherwise! :-) > - Rasmus 2012/2/4 <internals-digest-h...@lists.php.net> > From: Clint M Priest <cpri...@zerocue.com> > To: "internals@lists.php.net" <internals@lists.php.net> > Cc: > Date: Fri, 3 Feb 2012 13:47:53 +0000 > Subject: [PATCH] Property Getters/Setters (v2.4) for review The > property accessor functionality is done and is detailed here: > https://wiki.php.net/rfc/propertygetsetsyntax-as-implemented > > Core Patch: > http://www.clintpriest.com/patches/php-core/accessors/2.4.diff > > The core patch encompasses the entire original RFC and the > as-implemented includes implementation details and edge cases not > defined by the original RFC. > > Most changes are in zend_compile, zend_object_handlers and > zend_language_scanner. > > Thanks, > > -Clint -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php