* - hooks names in code are the first parameter of wfRunHooks.
*
* if --online option is passed, the script will compare the hooks in the code
- * with the ones at http://www.mediawiki.org/wiki/Manual:Hooks
+ * with the ones at https://www.mediawiki.org/wiki/Manual:Hooks
*
* Any instance of wfRunHooks that doesn't meet these parameters will be noted.
*
/*
* Hooks that are ignored
*/
- protected static $ignore = [ 'testRunLegacyHooks', 'Test' ];
+ protected static $ignore = [ 'Test' ];
public function __construct() {
parent::__construct();
$m = [];
preg_match_all(
// All functions which runs hooks
- '/(?:wfRunHooks|Hooks\:\:run|ContentHandler\:\:runLegacyHooks)\s*\(\s*' .
+ '/(?:wfRunHooks|Hooks\:\:run)\s*\(\s*' .
// First argument is the hook name as string
'([\'"])(.*?)\1' .
// Comma for second argument
'(?:\s*(,))?' .
// Second argument must start with array to be processed
- '(?:\s*array\s*\(' .
+ '(?:\s*(?:array\s*\(|\[)' .
// Matching inside array - allows one deep of brackets
- '((?:[^\(\)]|\([^\(\)]*\))*)' .
+ '((?:[^\(\)\[\]]|\((?-1)\)|\[(?-1)\])*)' .
// End
- '\))?/',
+ '[\)\]])?/',
$content,
$m,
PREG_SET_ORDER
foreach ( $iterator as $info ) {
// Ignore directories, work only on php files,
- if ( $info->isFile() && in_array( $info->getExtension(), [ 'php', 'php5', 'inc' ] )
+ if ( $info->isFile() && in_array( $info->getExtension(), [ 'php', 'inc' ] )
// Skip this file as it contains text that looks like a bad wfRunHooks() call
&& $info->getRealPath() !== __FILE__
) {