>> typedef void (*fcall_begin_handler_func_t)(zend_op_array *op_array); >> typedef void (*fcall_end_handler_func_t)(zend_op_array *op_array); >> >> struct _zend_extension { >> ... >> fcall_begin_handler_func_t fcall_begin_handler; >> fcall_end_handler_func_t fcall_end_handler; >> ... >> }; > > What about patching __call() so that it is always called? > I hesitate to solve a problem via engine patch if it's at all possible to do within an extension. I havn't entirely mapped it out, but it certainly looks like some magic methods could be hooked out using a zend_extension: function __pre($funcname, &$args) {} and function __post($funcname, &$args, &$retval) for procedural calls and matching object methods for class calls. No time to look deeper myself, but curious to see what others come up with.
-Sara -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php