Updated patch w/o white-space: http://www.clintpriest.com/patches/accessors_v1.patch
In the end it is a relatively simple patch. The new syntax effectively creates internal functions on the object and the system looks for those functions and calls them at the appropriate time. Example: class z { public $Hours { public get { return $this->_Hours; } protected set { $this->_Hours = $value; } } } Defines: $o->__getHours(); $o->__setHours($value); Standard __get()/__set() functionality checks for the more specifically defined function name and calls them. I thought this would make the most sense since it would allow us to leverage the existing inheritance functionality. This comes out with respect to interfaces and traits in that only errors had to be changed (for clarity) on interfaces and no changes to traits were necessary to support the new functionality. For the automatic get/set functionality, I essentially built the function body myself within zend_do_end_accessor_declaration(). One point of contention here is that internally it defines a __$Hours property which would be accessible from various points. I believe the standard C# get/set does not allow any access to the underlying data storage. In order to accomplish that there would need to be some non-standard storage or a super-private level or something. I did not explore that possibility as of yet. I did add a couple of convenience functions that may already be available in some other form I was not aware of, such as strcatalloc or MAKE_ZNODE(). --Clint -----Original Message----- From: Pierre Joye [mailto:pierre....@gmail.com] Sent: Sunday, December 04, 2011 4:50 AM To: Clint M Priest Cc: internals@lists.php.net Subject: Re: [PHP-DEV] Patch: getters/setters syntax Implementation hi Clint! Thanks for your work so far! On Sun, Dec 4, 2011 at 1:33 AM, Clint M Priest <cpri...@zerocue.com> wrote: > What are the next steps to get this added to some future release? Let discuss the implementation and how it works, then you can move to the voting phase. There is no need to hurry as the next release where this patch could go in is next year. Cheers, -- Pierre @pierrejoye | http://blog.thepimp.net | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php