Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:63280 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 76325 invoked from network); 8 Oct 2012 12:50:20 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 8 Oct 2012 12:50:20 -0000 Authentication-Results: pb1.pair.com smtp.mail=dragoonis@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dragoonis@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.223.170 as permitted sender) X-PHP-List-Original-Sender: dragoonis@gmail.com X-Host-Fingerprint: 209.85.223.170 mail-ie0-f170.google.com Received: from [209.85.223.170] ([209.85.223.170:61903] helo=mail-ie0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 5D/BA-07529-90CC2705 for ; Mon, 08 Oct 2012 08:50:18 -0400 Received: by mail-ie0-f170.google.com with SMTP id c12so10472249ieb.29 for ; Mon, 08 Oct 2012 05:50:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=R+EuEFiT8iRkC9AJA+b33dzR8E46S+usX3yvJ79rZNQ=; b=F0y5asJjZqVlsRrrzmzP+WGsAi0bpprqNzBpwcsNWGSb6b/dLrhKFj0yqgyOoHXwse 5FboemxclancDANhJlwaTNvqrddcVDGtEgHebf/m6WqN9SZC/mJm06hpcl5ey6MJRUIA ds2ugJGZMMTk4e/471znMzg76tmPduuZ6bTBe0dSPtHxsbP+21QUNRGgCdxIZniD28vy JKeEQZTy8LJd3iKcANHfSqrCKJb2tX9G6CEtm7Mmu0Q1zBxMjGFeIMlTnCZddStkQbip GONleQjVTZODNB7w1Jnw3QN1ygPs8begyJPkqB6K1KcTyZ5lyr/phnR4BF67WVyVCVCm 1Hrw== MIME-Version: 1.0 Received: by 10.50.106.133 with SMTP id gu5mr8161829igb.18.1349700614996; Mon, 08 Oct 2012 05:50:14 -0700 (PDT) Received: by 10.64.12.45 with HTTP; Mon, 8 Oct 2012 05:50:14 -0700 (PDT) In-Reply-To: <9570D903A3BECE4092E924C2985CE485612B3B76@MBX202.domain.local> References: <9570D903A3BECE4092E924C2985CE485612B3B48@MBX202.domain.local> <9570D903A3BECE4092E924C2985CE485612B3B76@MBX202.domain.local> Date: Mon, 8 Oct 2012 13:50:14 +0100 Message-ID: To: Clint Priest Cc: "internals@lists.php.net" Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [PHP-DEV] [RFC] Propety Accessors v1.1 From: dragoonis@gmail.com (Paul Dragoonis) Good 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. On Mon, Oct 8, 2012 at 1:42 PM, Clint Priest wrote: > As an update, just ran some performance testing: > > master > Cycles Direct Getter __get > v1.4 @ 10/8/2012 1m .05s .21s .20s > > php 5.5.0-dev > Cycles Direct Getter __get > v1.4 @ 10/8/2012 1m .04s n/a .21s > > Performance 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.1 >> >> It'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-implemented >> >> Example Usage: >> >> class TimePeriod { >> private $Seconds = 3600; >> >> public $Hours { >> get { return $this->Seconds / 3600; } >> set { $this->Seconds = $value; } >> isset { return isset($this->Seconds); } >> unset { 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-src >> >> I'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 > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php >