X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FHooks.php;h=cd38a7d45e909b8cac48f1d0020559b0e5988404;hb=220285ddd27b7f2971e9619940c48a8eee122cd0;hp=c726538c9932ce6cb7cd14cdc01b1ad10bcbfc1b;hpb=27808a526c6afb22c1a56e98bc6c177c82c27f96;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Hooks.php b/includes/Hooks.php index c726538c99..cd38a7d45e 100644 --- a/includes/Hooks.php +++ b/includes/Hooks.php @@ -24,12 +24,6 @@ * @file */ -/** - * @since 1.18 - */ -class MWHookException extends MWException { -} - /** * Hooks class. * @@ -135,10 +129,6 @@ class Hooks { * returning null) is equivalent to returning true. */ public static function run( $event, array $args = array(), $deprecatedVersion = null ) { - $stats = RequestContext::getMain()->getStats(); - $metric = $stats->increment( 'hooks.' . $event ); - $metric->setSampleRate( 0.001 ); - foreach ( self::getHandlers( $event ) as $hook ) { // Turn non-array values into an array. (Can't use casting because of objects.) if ( !is_array( $hook ) ) { @@ -197,34 +187,17 @@ class Hooks { $badhookmsg = null; $hook_args = array_merge( $hook, $args ); - set_error_handler( 'Hooks::hookErrorHandler' ); - // mark hook as deprecated, if deprecation version is specified if ( $deprecatedVersion !== null ) { wfDeprecated( "$event hook (used in $func)", $deprecatedVersion ); } - try { - $retval = call_user_func_array( $callback, $hook_args ); - } catch ( MWHookException $e ) { - $badhookmsg = $e->getMessage(); - } catch ( Exception $e ) { - restore_error_handler(); - throw $e; - } - - restore_error_handler(); + $retval = call_user_func_array( $callback, $hook_args ); // Process the return value. if ( is_string( $retval ) ) { // String returned means error. throw new FatalError( $retval ); - } elseif ( $badhookmsg !== null ) { - // Exception was thrown from Hooks::hookErrorHandler. - throw new MWException( - 'Detected bug in an extension! ' . - "Hook $func has invalid call signature; " . $badhookmsg - ); } elseif ( $retval === false ) { // False was returned. Stop processing, but no error. return false; @@ -233,24 +206,4 @@ class Hooks { return true; } - - /** - * Handle PHP errors issued inside a hook. Catch errors that have to do with - * a function expecting a reference, and let all others pass through. - * - * This REALLY should be protected... but it's public for compatibility - * - * @since 1.18 - * - * @param int $errno Error number (unused) - * @param string $errstr Error message - * @throws MWHookException If the error has to do with the function signature - * @return bool Always returns false - */ - public static function hookErrorHandler( $errno, $errstr ) { - if ( strpos( $errstr, 'expected to be a reference, value given' ) !== false ) { - throw new MWHookException( $errstr, $errno ); - } - return false; - } }