-
- /**
- * Handle PHP errors issued inside a hook. Catch errors that have to do
- * with a function expecting a reference, missing arguments, or wrong argument
- * types. Pass all others through to to the default error handler.
- *
- * This is useful for throwing errors for major callback invocation errors
- * (with regard to parameter signature) which PHP just gives warnings for.
- *
- * @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
- */
- public static function hookErrorHandler( $errno, $errstr ) {
- if ( strpos( $errstr, 'expected to be a reference, value given' ) !== false
- || strpos( $errstr, 'Missing argument ' ) !== false
- || strpos( $errstr, ' expects parameter ' ) !== false
- ) {
- throw new MWHookException( $errstr, $errno );
- }
-
- // Delegate unhandled errors to the default handlers
- return false;
- }