MediaWiki
REL1_20
|
00001 <?php 00024 require_once( __DIR__ . '/Maintenance.php' ); 00025 00031 class CheckAutoLoader extends Maintenance { 00032 public function __construct() { 00033 parent::__construct(); 00034 $this->mDescription = "AutoLoader sanity checks"; 00035 } 00036 public function execute() { 00037 global $wgAutoloadLocalClasses, $IP; 00038 $files = array_unique( $wgAutoloadLocalClasses ); 00039 00040 foreach ( $files as $file ) { 00041 if ( function_exists( 'parsekit_compile_file' ) ) { 00042 $parseInfo = parsekit_compile_file( "$IP/$file" ); 00043 $classes = array_keys( $parseInfo['class_table'] ); 00044 } else { 00045 $contents = file_get_contents( "$IP/$file" ); 00046 $m = array(); 00047 preg_match_all( '/\n\s*class\s+([a-zA-Z0-9_]+)/', $contents, $m, PREG_PATTERN_ORDER ); 00048 $classes = $m[1]; 00049 } 00050 foreach ( $classes as $class ) { 00051 if ( !isset( $wgAutoloadLocalClasses[$class] ) ) { 00052 // printf( "%-50s Unlisted, in %s\n", $class, $file ); 00053 $this->output( "\t'$class' => '$file',\n" ); 00054 } elseif ( $wgAutoloadLocalClasses[$class] !== $file ) { 00055 $this->output( "$class: Wrong file: found in $file, listed in " . $wgAutoloadLocalClasses[$class] . "\n" ); 00056 } 00057 } 00058 } 00059 } 00060 } 00061 00062 $maintClass = "CheckAutoLoader"; 00063 require_once( RUN_MAINTENANCE_IF_MAIN );