X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;ds=sidebyside;f=includes%2FHooks.php;h=036d65c71e60943c4e2f5bfbf797305e180ad066;hb=3a79a825d071855cfb8cb02246c7514434dfd9fe;hp=77486b208cf45cb5937fad1cf156764e7bd3cdd2;hpb=b51207156f35b5a3df25ea688161a20c8c11379c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Hooks.php b/includes/Hooks.php index 77486b208c..036d65c71e 100644 --- a/includes/Hooks.php +++ b/includes/Hooks.php @@ -64,10 +64,10 @@ class Hooks { * Clears hooks registered via Hooks::register(). Does not touch $wgHooks. * This is intended for use while testing and will fail if MW_PHPUNIT_TEST is not defined. * - * @param string $name the name of the hook to clear. + * @param string $name The name of the hook to clear. * * @since 1.21 - * @throws MWException if not in testing mode. + * @throws MWException If not in testing mode. */ public static function clear( $name ) { if ( !defined( 'MW_PHPUNIT_TEST' ) ) { @@ -123,18 +123,18 @@ class Hooks { * Finally, process the return value and return/throw accordingly. * * @param string $event Event name - * @param array $args Array of parameters passed to hook functions + * @param array $args Array of parameters passed to hook functions * @param string|null $deprecatedVersion Optionally, mark hook as deprecated with version number * @return bool True if no handler aborted the hook * + * @throws Exception + * @throws FatalError + * @throws MWException * @since 1.22 A hook function is not required to return a value for * processing to continue. Not returning a value (or explicitly * returning null) is equivalent to returning true. - * @throws MWException - * @throws FatalError */ public static function run( $event, array $args = array(), $deprecatedVersion = null ) { - wfProfileIn( 'hook: ' . $event ); foreach ( self::getHandlers( $event ) as $hook ) { // Turn non-array values into an array. (Can't use casting because of objects.) if ( !is_array( $hook ) ) { @@ -179,7 +179,7 @@ class Hooks { // Run autoloader (workaround for call_user_func_array bug) // and throw error if not callable. if ( !is_callable( $callback ) ) { - throw new MWException( 'Invalid callback in hooks for ' . $event . "\n" ); + throw new MWException( 'Invalid callback ' . $func . ' in hooks for ' . $event . "\n" ); } /* @@ -193,8 +193,6 @@ class Hooks { $badhookmsg = null; $hook_args = array_merge( $hook, $args ); - // Profile first in case the Profiler causes errors. - wfProfileIn( $func ); set_error_handler( 'Hooks::hookErrorHandler' ); // mark hook as deprecated, if deprecation version is specified @@ -210,8 +208,8 @@ class Hooks { restore_error_handler(); throw $e; } + restore_error_handler(); - wfProfileOut( $func ); // Process the return value. if ( is_string( $retval ) ) { @@ -224,13 +222,11 @@ class Hooks { "Hook $func has invalid call signature; " . $badhookmsg ); } elseif ( $retval === false ) { - wfProfileOut( 'hook: ' . $event ); // False was returned. Stop processing, but no error. return false; } } - wfProfileOut( 'hook: ' . $event ); return true; }