__call_static() Magic Method

From: Date: Sat, 14 Jul 2007 00:53:44 +0000
Subject: __call_static() Magic Method
Groups: php.internals 
Request: Send a blank email to internals+get-30898@lists.php.net to get a copy of this message
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)... -Sara

« previous php.internals (#30898) next »