Re: [PATCH] Late Static Binding (Take 2)
| From: | Andi Gutmans | Date: | Fri, 31 Mar 2006 15:58:13 +0000 |
| Subject: | Re: [PATCH] Late Static Binding (Take 2) | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-22625@lists.php.net to get a copy of this message | ||
I still have some questions into Dmitry re: the patch before I feel comfortable with applying it.
The better keyword is this::. I want to use that for now and not static:: which says nothing about what this is. When I brougth it up many ppl liked it.
Andi
At 06:41 AM 3/31/2006, Marcus Boerger wrote:
Hello Dmitry, can't we just commit it and when sombody finds a better working keyword we change it? (I'd like to use this in SPL_Types, to precise my reasoning). regards marcus Friday, March 31, 2006, 8:47:42 AM, you wrote: Hi Michael,EX(caller_scope) is just a temporary value it is set in ZEND_INIT_METHOD_CALL and copied into EG(caller_scope) in ZEND_DO_FCALL_BY_NAME. It is possible situation when sequence of instructions will have several ZEND_INIT_METHOD_CALL before first ZEND_DO_FCALL_BY_NAME. For example the following PHP code will produce it: Foo::bar(test()); To handle this situation EX(caller_scope) stored into special stack. (I made EG(caller_scope) work near in the same way as EG(This) works).-----Original Message----- From: Michael Lively Jr. [mailto:mlively@ft11.com] Sent: Thursday, March 30, 2006 8:53 PM To: Dmitry Stogov Cc: 'Andi Gutmans'; 'PHP-DEV'; 'Marcus Boerger' Subject: Re: [PHP-DEV] [PATCH] Late Static Binding (Take 2) I took a quick glance through it and it mostly makes sense to me. If anyone could clear up a question when time permits: I don't fully understand why both executor_globals and and execute_data are used to store the caller_scope pointer.Would you like to add (modify) something to my patch? Thanks. Dmitry.I almost had a finished another patch myself using EG() but I had to take a break to pay my bills :/. Thanks for looking at this Dmitry. I will go ahead and put together a more exhaustive use case for this over the weekend.Best regards, MarcusMike Lively Dmitry Stogov wrote:Hi Mike, I finally found a day to look into your patch and make itwork in all(may be I forgot something) cases. Improved patch and test cases are attached. I still don't like name - "static", and I am not sure that this concept is necessary for PHP. Thanks. Dmitry."caller_scope" in-----Original Message----- From: Mike Lively [mailto:mlively@ft11.com] Sent: Thursday, March 09, 2006 12:06 AM To: Dmitry Stogov Cc: Andi Gutmans; PHP-DEV; Marcus Boerger Subject: [PHP-DEV] [PATCH] Late Static Binding (Take 2) On Wed, 2006-03-01 at 17:37 +0300, Dmitry Stogov wrote:1) I would very like to see some real example where "static" is necessary? 2) "static" is really bad name. I suggest "caller", Marcus thought about "class". 3) I COMPLETELY DISAGREE TO ADD RUNTIME DATA INTO zend_function/zend_op_array. We can try to store---------------------------------------------------------------------execute_data. Thanks. Dmitry.Rewrote the patch to use execute_data to store caller_scope. I have not renamed any functions or keywords (still using static::) as I did not see any consensus on that yet. Please review the implementation of caller_scope and I can take care of the naming issues when names are decided on. patch attached and also available at http://test.ft11.net/_mlively/late-static-binding.patch It would be nice if the patch in PAT could be changed to reference this new version if the appropriate people have time.--- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.385 / Virus Database: 268.3.3/296 - Release Date: 3/29/2006