A couple of quick comments...

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?

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.

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

Reply via email to