* @since 1.18
*/
public static function register( $name, $callback ) {
- if( !isset( self::$handlers[$name] ) ) {
+ if ( !isset( self::$handlers[$name] ) ) {
self::$handlers[$name] = array();
}
* @param array $args Array of parameters passed to hook functions
* @return bool True if no handler aborted the hook
*
+ * @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
*/
// Run autoloader (workaround for call_user_func_array bug)
// and throw error if not callable.
- if( !is_callable( $callback ) ) {
+ if ( !is_callable( $callback ) ) {
throw new MWException( 'Invalid callback in hooks for ' . $event . "\n" );
}
'Detected bug in an extension! ' .
"Hook $func has invalid call signature; " . $badhookmsg
);
- } elseif ( $retval === null ) {
- // Null was returned. Error.
- throw new MWException(
- 'Detected bug in an extension! ' .
- "Hook $func failed to return a value; " .
- 'should return true to continue hook processing or false to abort.'
- );
- } elseif ( !$retval ) {
+ } elseif ( $retval === false ) {
wfProfileOut( 'hook: ' . $event );
// False was returned. Stop processing, but no error.
return false;