Each time I've posted the RFC for review more has come up so I suppose at this point it needs to go through a waiting period on further comments and then in 2 weeks?
-----Original Message-----
From: Paul Dragoonis [mailto:dragoonis@gmail.com]
Sent: Monday, October 08, 2012 7:50 AM
To: Clint Priest
Cc: internals@lists.php.net
Subject: Re: [PHP-DEV] [RFC] Propety Accessors v1.1Good work Clint!
Performance is probably one of the things people will complain about so it's good that your benchmark is proving that it's merely
identical to the old __get() approach.What remains on your TODO list for this functionality?
When are you planning to run an RFC vote on this?I think this would be a valuable addition to PHP 5.5.
Cheers,
Paul.As an update, just ran some performance testing:
master
Cycles Direct Getter __get
v1.4 @ 10/8/2012 1m .05s .21s .20sphp 5.5.0-dev
Cycles Direct Getter __get
v1.4 @ 10/8/2012 1m .04s n/a .21sPerformance of property accessors was important to me as I'm sure it will be to many, on one million cycles of a simple getter, it's
<.01s difference. Depending on the run it is sometimes exactly the same performance.-----Original Message-----
From: Clint Priest [mailto:cpriest@zerocue.com]
Sent: Monday, October 08, 2012 6:53 AM
To: internals@lists.php.net
Subject: [PHP-DEV] [RFC] Propety Accessors v1.1It's been a while since I posted any updates about this, a few
individuals have been asking about it privately and wanting me to get it out the door for PHP 5.5 release. It's come a long way since
the last time I posted about it.RFC Document:
https://wiki.php.net/rfc/propertygetsetsyntax-as-implementedExample Usage:
class TimePeriod {
private $Seconds = 3600;public $Hours { get { return $this->Seconds / 3600; } set { $this->Seconds = $value; } isset<http://www.php.net/isset> { return isset<http://www.php.net/isset>($this->Seconds); } unset<http://www.php.net/unset> { unset<http://www.php.net/unset>($this->Seconds); } }
}
Changes / Updates
isset/unset accessor functions now implemented (object & static context, auto implementations, etc)
static accessor now fully functional
Reference functionality validated, tests written
All operators have been tested, tests written
read-only and write-only keywords: Added explanation of reasons for inclusion at the top of the appropriate RFC section
Tested for speed, approaches or meets __get() speed.
Internally things have changed quite a bit
cleaned up and simplified
had been using 4 to 5 additional fn_flag slots, now down to two (READ_ONLY and WRITE_ONLY)
the automatic implementations now compiled internal php code, this greatly simplified that part of the code and future
proofed
it.
The code is available at the url below and is up to date with master, all tests pass.
https://github.com/cpriest/php-srcI'd like to get this project wrapped up in time to make it to the 5.5 release, only a few things remain to be completed/updated:
Check on reflection code written prior to major changes (tests still pass)
Add a few more reflection functions that were requested
In total there are 79 tests for this new functionality, if there are any others that I have missed, please let me know.
-Clint
--
To unsubscribe,
visit: http://www.php.net/unsub.php