Sara Golemon kirjoitti:
Attached is a patch which exports an internals hook in zend_class_entry for fetching function pointers similar to the object hook get_method() available to instance methods.

This patch also exports a userspace hook __call_static() which operates in the fashion of the current __call() magic method, but for static calls.

Wez called for some functionality like this a few weeks ago for a COM wrapper (or something similar), and I noticed there was actually a comment in the engine about how this should eventually be done anyway...

Usage example:

class foo
{
    public static function __call_static($fname, $args)
    {
        echo "foo::{$fname}() called staticly with ",
             count($args), " parameters\n";
    }
}

foo::randomMethod(1,2,3);


I considered setting get_static_method to zend_std_get_static_method() by default (avoiding the if set check during runtime), but all the other hoooks follow this pattern so I went with consistency.

If noone comments to the negative, I'll commit next friday (7/20)...

As long as you MFH, I don't mind.

--Jani

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to