Hello Dmitry, of course, what hinders you? See original mail from Mike: http://news.php.net/php.internals/21991
regards marcus Wednesday, March 1, 2006, 12:51:51 PM, you wrote: > Can I look into patch? > Dmitry. >> -----Original Message----- >> From: Marcus Boerger [mailto:[EMAIL PROTECTED] >> Sent: Wednesday, March 01, 2006 1:01 PM >> To: PHP-DEV >> Cc: Andi Gutmans; Mike Lively >> Subject: Re: [PHP-DEV] [PATCH] Late Static Binding >> >> >> Hello internals, >> >> it looks like either nobody objects or nobody has >> interest. Either way i tested the patch and worked helped it >> a bit and it looks good, doesn't affect anything else and >> doesn't show a single problem in valgrind. So If noone >> objects i will commit this next week. >> >> regards >> marcus >> >> special mail to andi :-) >> >> >> Thursday, February 23, 2006, 11:06:02 PM, you wrote: >> >> > I have finished a patch that implements a working version of late >> > static binding. >> >> > I used the notes from the Paris PDM as my guidelines for >> > implementation. >> > >> (http://www.php.net/~derick/meeting-notes.html#late-static-bin > ding-using-this-without-or-perhaps-with-a-different-name) >> > As requested in the notes I reused 'static::'. I also wrote >> a few tests >> > not only to test the new functionality but also to make >> sure 'static' can't be inherited or extended. >> >> > I also added a new function get_caller_class() which >> returns the name >> > of the class that static:: would represent. >> >> > (borrowing from PDM notes) >> > In php5.* the following script outputs "A::static2": >> >> > <?php >> > class A { >> > static function staticA() { >> > self::static2(); >> > } >> >> > static function static2() { >> > echo "A::static2\n"; >> > } >> > } >> >> > class B extends A { >> > static function static2() { >> > echo "B::static2\n"; >> > } >> > } >> >> > B::staticA(); >> ?>> >> >> > This has somewhat recently been highlighted by different >> developers to >> > be somewhat problematic behavior in creating user friendly APIs. If >> > you want to see a possible use for it you need look no further than >> > the example ZActiveRecord API that was used in their webcast with >> > php|arch. >> > >> (http://blog.joshuaeichorn.com/archives/2006/01/09/zactivereco >> rd-cant-work/) >> > Currently the code laid out there is impossible short of >> some ugly use of >> > debug_backtrace() and file parsing :/. This patch of course >> would allow that kind of code too exist. >> >> > In a small example based on the one I gave earlier you could change >> > the code too the following and have it print "B::static2": >> >> > <?php >> > class A { >> > static function staticA() { >> > static::static2(); >> > } >> >> > static function static2() { >> > echo "A::static2\n"; >> > } >> > } >> >> > class B extends A { >> > static function static2() { >> > echo "B::static2\n"; >> > } >> > } >> >> > B::staticA(); >> ?>> >> >> > As far as current userland code impact, there is very >> little as far as >> > I can tell. No keywords have been added, just another use for an >> > existing one. No changes were made to self:: or parent:: so >> the change >> > should be pretty transparent. The only thing that I see remotely >> > causing any issues would be the new function >> (get_caller_class().) I >> > added that just to complete the set so to speak. >> >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> >> Best regards, Marcus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php