<?php
-
/* This defines autoloading handler for whole MediaWiki framework */
# Locations of core classes
# Extension classes are specified with $wgAutoloadClasses
# This array is a global instead of a static member of AutoLoader to work around a bug in APC
global $wgAutoloadLocalClasses;
+
$wgAutoloadLocalClasses = array(
# Includes
'AjaxDispatcher' => 'includes/AjaxDispatcher.php',
'DiffHistoryBlob' => 'includes/HistoryBlob.php',
'DjVuImage' => 'includes/DjVuImage.php',
'DoubleReplacer' => 'includes/StringUtils.php',
- 'DoubleRedirectJob' => 'includes/DoubleRedirectJob.php',
'DublinCoreRdf' => 'includes/Metadata.php',
'Dump7ZipOutput' => 'includes/Export.php',
'DumpBZip2Output' => 'includes/Export.php',
'DumpPipeOutput' => 'includes/Export.php',
'eAccelBagOStuff' => 'includes/BagOStuff.php',
'EditPage' => 'includes/EditPage.php',
- 'EmaillingJob' => 'includes/EmaillingJob.php',
'EmailNotification' => 'includes/UserMailer.php',
'EnhancedChangesList' => 'includes/ChangesList.php',
- 'EnotifNotifyJob' => 'includes/EnotifNotifyJob.php',
'ErrorPageError' => 'includes/Exception.php',
'Exif' => 'includes/Exif.php',
'ExplodeIterator' => 'includes/StringUtils.php',
'ExternalStoreHttp' => 'includes/ExternalStoreHttp.php',
'ExternalStore' => 'includes/ExternalStore.php',
'ExternalUser' => 'includes/ExternalUser.php',
- 'ExternalUser_Hardcoded' => 'includes/extauth/Hardcoded.php',
- 'ExternalUser_MediaWiki' => 'includes/extauth/MediaWiki.php',
- 'ExternalUser_vB' => 'includes/extauth/vB.php',
'FatalError' => 'includes/Exception.php',
'FakeTitle' => 'includes/FakeTitle.php',
'FakeMemCachedClient' => 'includes/ObjectCache.php',
'ForkController' => 'includes/ForkController.php',
'FormatExif' => 'includes/Exif.php',
'FormOptions' => 'includes/FormOptions.php',
- 'GIFMetadataExtractor' => 'includes/media/GIFMetadataExtractor.php',
- 'GIFHandler' => 'includes/media/GIF.php',
'GlobalDependency' => 'includes/CacheDependency.php',
'HashBagOStuff' => 'includes/BagOStuff.php',
'HashtableReplacer' => 'includes/StringUtils.php',
'IndexPager' => 'includes/Pager.php',
'Interwiki' => 'includes/Interwiki.php',
'IP' => 'includes/IP.php',
- 'Job' => 'includes/JobQueue.php',
'JSMin' => 'includes/JSMin.php',
'LCStore_DB' => 'includes/LocalisationCache.php',
'LCStore_CDB' => 'includes/LocalisationCache.php',
'MagicWord' => 'includes/MagicWord.php',
'MailAddress' => 'includes/UserMailer.php',
'MathRenderer' => 'includes/Math.php',
- 'MediaTransformError' => 'includes/MediaTransformOutput.php',
- 'MediaTransformOutput' => 'includes/MediaTransformOutput.php',
'MediaWikiBagOStuff' => 'includes/BagOStuff.php',
'MediaWiki_I18N' => 'includes/SkinTemplate.php',
'MediaWiki' => 'includes/Wiki.php',
'MemCachedClientforWiki' => 'includes/memcached-client.php',
+ 'Message' => 'includes/Message.php',
'MessageCache' => 'includes/MessageCache.php',
'MimeMagic' => 'includes/MimeMagic.php',
'MWException' => 'includes/Exception.php',
'RCCacheEntry' => 'includes/ChangesList.php',
'RdfMetaData' => 'includes/Metadata.php',
'RecentChange' => 'includes/RecentChange.php',
- 'RefreshLinksJob' => 'includes/RefreshLinksJob.php',
- 'RefreshLinksJob2' => 'includes/RefreshLinksJob.php',
'RegexlikeReplacer' => 'includes/StringUtils.php',
'ReplacementArray' => 'includes/StringUtils.php',
'Replacer' => 'includes/StringUtils.php',
'ReverseChronologicalPager' => 'includes/Pager.php',
'Revision' => 'includes/Revision.php',
+ 'RevisionDelete' => 'includes/RevisionDelete.php',
'RSSFeed' => 'includes/Feed.php',
'Sanitizer' => 'includes/Sanitizer.php',
'SiteConfiguration' => 'includes/SiteConfiguration.php',
'StubObject' => 'includes/StubObject.php',
'StringUtils' => 'includes/StringUtils.php',
'TablePager' => 'includes/Pager.php',
- 'ThumbnailImage' => 'includes/MediaTransformOutput.php',
- 'TiffHandler' => 'includes/media/Tiff.php',
'TitleDependency' => 'includes/CacheDependency.php',
'Title' => 'includes/Title.php',
'TitleArray' => 'includes/TitleArray.php',
'TitleArrayFromResult' => 'includes/TitleArray.php',
'TitleListDependency' => 'includes/CacheDependency.php',
- 'TransformParameterError' => 'includes/MediaTransformOutput.php',
- 'TurckBagOStuff' => 'includes/BagOStuff.php',
'UnlistedSpecialPage' => 'includes/SpecialPage.php',
- 'UploadBase' => 'includes/upload/UploadBase.php',
- 'UploadFromStash' => 'includes/upload/UploadFromStash.php',
- 'UploadFromFile' => 'includes/upload/UploadFromFile.php',
- 'UploadFromUrl' => 'includes/upload/UploadFromUrl.php',
- 'UploadFromChunks' => 'includes/upload/UploadFromChunks.php',
'User' => 'includes/User.php',
'UserArray' => 'includes/UserArray.php',
'UserArrayFromResult' => 'includes/UserArray.php',
'WikiMap' => 'includes/WikiMap.php',
'WikiReference' => 'includes/WikiMap.php',
'WikiXmlError' => 'includes/WikiError.php',
+ 'WinCacheBagOStuff' => 'includes/BagOStuff.php',
'XCacheBagOStuff' => 'includes/BagOStuff.php',
'XmlDumpWriter' => 'includes/Export.php',
'Xml' => 'includes/Xml.php',
'ApiQueryDisabled' => 'includes/api/ApiQueryDisabled.php',
'ApiQueryDuplicateFiles' => 'includes/api/ApiQueryDuplicateFiles.php',
'ApiQueryExtLinksUsage' => 'includes/api/ApiQueryExtLinksUsage.php',
+ 'ApiQueryFilearchive' => 'includes/api/ApiQueryFilearchive.php',
'ApiQueryExternalLinks' => 'includes/api/ApiQueryExternalLinks.php',
'ApiQueryGeneratorBase' => 'includes/api/ApiQueryBase.php',
'ApiQueryImageInfo' => 'includes/api/ApiQueryImageInfo.php',
'ApiQueryImages' => 'includes/api/ApiQueryImages.php',
'ApiQueryInfo' => 'includes/api/ApiQueryInfo.php',
+ 'ApiQueryIWLinks' => 'includes/api/ApiQueryIWLinks.php',
+ 'ApiQueryIWBacklinks' => 'includes/api/ApiQueryIWBacklinks.php',
'ApiQueryLangLinks' => 'includes/api/ApiQueryLangLinks.php',
'ApiQueryLinks' => 'includes/api/ApiQueryLinks.php',
'ApiQueryLogEvents' => 'includes/api/ApiQueryLogEvents.php',
'ApiQueryProtectedTitles' => 'includes/api/ApiQueryProtectedTitles.php',
'ApiQueryRandom' => 'includes/api/ApiQueryRandom.php',
- 'ApiQueryRecentChanges'=> 'includes/api/ApiQueryRecentChanges.php',
+ 'ApiQueryRecentChanges' => 'includes/api/ApiQueryRecentChanges.php',
'ApiQueryRevisions' => 'includes/api/ApiQueryRevisions.php',
'ApiQuerySearch' => 'includes/api/ApiQuerySearch.php',
'ApiQuerySiteinfo' => 'includes/api/ApiQuerySiteinfo.php',
'Spyc' => 'includes/api/ApiFormatYaml_spyc.php',
'UsageException' => 'includes/api/ApiMain.php',
+ # includes/extauth
+ 'ExternalUser_Hardcoded' => 'includes/extauth/Hardcoded.php',
+ 'ExternalUser_MediaWiki' => 'includes/extauth/MediaWiki.php',
+ 'ExternalUser_vB' => 'includes/extauth/vB.php',
+
# includes/json
'Services_JSON' => 'includes/json/Services_JSON.php',
'Services_JSON_Error' => 'includes/json/Services_JSON.php',
'ChronologyProtector' => 'includes/db/LBFactory.php',
'Database' => 'includes/db/DatabaseMysql.php',
'DatabaseBase' => 'includes/db/Database.php',
- 'DatabaseMssql' => 'includes/db/DatabaseMssql.php',
'DatabaseMysql' => 'includes/db/DatabaseMysql.php',
'DatabaseOracle' => 'includes/db/DatabaseOracle.php',
'DatabasePostgres' => 'includes/db/DatabasePostgres.php',
'LoadBalancer' => 'includes/db/LoadBalancer.php',
'LoadMonitor' => 'includes/db/LoadMonitor.php',
'LoadMonitor_MySQL' => 'includes/db/LoadMonitor.php',
- 'MSSQLField' => 'includes/db/DatabaseMssql.php',
'MySQLField' => 'includes/db/Database.php',
'MySQLMasterPos' => 'includes/db/DatabaseMysql.php',
'ORABlob' => 'includes/db/DatabaseOracle.php',
'RepoGroup' => 'includes/filerepo/RepoGroup.php',
'UnregisteredLocalFile' => 'includes/filerepo/UnregisteredLocalFile.php',
+ # includes/installer
+ 'CliInstaller' => 'includes/installer/CliInstaller.php',
+ 'Installer' => 'includes/installer/Installer.php',
+ 'InstallerDBType' => 'includes/installer/InstallerDBType.php',
+ 'LBFactory_InstallerFake' => 'includes/installer/Installer.php',
+ 'LocalSettingsGenerator' => 'includes/installer/LocalSettingsGenerator.php',
+ 'WebInstaller' => 'includes/installer/WebInstaller.php',
+ 'WebInstallerOutput' => 'includes/installer/WebInstallerOutput.php',
+ 'MysqlInstaller' => 'includes/installer/MysqlInstaller.php',
+ 'MysqlUpdater' => 'includes/installer/Updaters.php',
+ 'PostgresInstaller' => 'includes/installer/PostgresInstaller.php',
+ 'SqliteInstaller' => 'includes/installer/SqliteInstaller.php',
+ 'SqliteUpdater' => 'includes/installer/Updaters.php',
+ 'OracleInstaller' => 'includes/installer/OracleInstaller.php',
+ 'Update' => 'includes/installer/Update.php',
+ 'Updaters' => 'includes/installer/Updaters.php',
+
+ # includes/job
+ 'DoubleRedirectJob' => 'includes/job/DoubleRedirectJob.php',
+ 'EmaillingJob' => 'includes/job/EmaillingJob.php',
+ 'EnotifNotifyJob' => 'includes/job/EnotifNotifyJob.php',
+ 'Job' => 'includes/job/JobQueue.php',
+ 'RefreshLinksJob' => 'includes/job/RefreshLinksJob.php',
+ 'RefreshLinksJob2' => 'includes/job/RefreshLinksJob.php',
+ 'UploadFromUrlJob' => 'includes/job/UploadFromUrlJob.php',
+
# includes/media
'BitmapHandler' => 'includes/media/Bitmap.php',
'BitmapHandler_ClientOnly' => 'includes/media/Bitmap_ClientOnly.php',
'BmpHandler' => 'includes/media/BMP.php',
'DjVuHandler' => 'includes/media/DjVu.php',
+ 'GIFHandler' => 'includes/media/GIF.php',
+ 'GIFMetadataExtractor' => 'includes/media/GIFMetadataExtractor.php',
'ImageHandler' => 'includes/media/Generic.php',
'MediaHandler' => 'includes/media/Generic.php',
+ 'MediaTransformError' => 'includes/media/MediaTransformOutput.php',
+ 'MediaTransformOutput' => 'includes/media/MediaTransformOutput.php',
+ 'PNGHandler' => 'includes/media/PNG.php',
+ 'PNGMetadataExtractor' => 'includes/media/PNGMetadataExtractor.php',
'SvgHandler' => 'includes/media/SVG.php',
+ 'ThumbnailImage' => 'includes/media/MediaTransformOutput.php',
+ 'TiffHandler' => 'includes/media/Tiff.php',
+ 'TransformParameterError' => 'includes/media/MediaTransformOutput.php',
# includes/normal
'UtfNormal' => 'includes/normal/UtfNormal.php',
'DoubleRedirectsPage' => 'includes/specials/SpecialDoubleRedirects.php',
'EmailConfirmation' => 'includes/specials/SpecialConfirmemail.php',
'EmailInvalidation' => 'includes/specials/SpecialConfirmemail.php',
- 'EmailUserForm' => 'includes/specials/SpecialEmailuser.php',
+ 'SpecialEmailUser' => 'includes/specials/SpecialEmailuser.php',
'FakeResultWrapper' => 'includes/specials/SpecialAllmessages.php',
'FewestrevisionsPage' => 'includes/specials/SpecialFewestrevisions.php',
'FileDuplicateSearchPage' => 'includes/specials/SpecialFileDuplicateSearch.php',
'PreferencesForm' => 'includes/Preferences.php',
'RandomPage' => 'includes/specials/SpecialRandompage.php',
'SpecialRevisionDelete' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevisionDeleter' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_RevisionList' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_RevisionItem' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_ArchiveList' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_ArchiveItem' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_FileList' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_FileItem' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_ArchivedFileList' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_ArchivedFileItem' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_LogList' => 'includes/specials/SpecialRevisiondelete.php',
- 'RevDel_LogItem' => 'includes/specials/SpecialRevisiondelete.php',
+ 'RevisionDeleter' => 'includes/RevisionDelete.php',
+ 'RevDel_RevisionList' => 'includes/RevisionDelete.php',
+ 'RevDel_RevisionItem' => 'includes/RevisionDelete.php',
+ 'RevDel_ArchiveList' => 'includes/RevisionDelete.php',
+ 'RevDel_ArchiveItem' => 'includes/RevisionDelete.php',
+ 'RevDel_FileList' => 'includes/RevisionDelete.php',
+ 'RevDel_FileItem' => 'includes/RevisionDelete.php',
+ 'RevDel_ArchivedFileList' => 'includes/RevisionDelete.php',
+ 'RevDel_ArchivedFileItem' => 'includes/RevisionDelete.php',
+ 'RevDel_LogList' => 'includes/RevisionDelete.php',
+ 'RevDel_LogItem' => 'includes/RevisionDelete.php',
+ 'SpecialRevisionMove' => 'includes/specials/SpecialRevisionMove.php',
'ShortPagesPage' => 'includes/specials/SpecialShortpages.php',
'SpecialActiveUsers' => 'includes/specials/SpecialActiveusers.php',
'SpecialAllpages' => 'includes/specials/SpecialAllpages.php',
'SpecialBlankpage' => 'includes/specials/SpecialBlankpage.php',
'SpecialBookSources' => 'includes/specials/SpecialBooksources.php',
+ 'SpecialComparePages' => 'includes/specials/SpecialComparePages.php',
'SpecialExport' => 'includes/specials/SpecialExport.php',
+ 'SpecialFilepath' => 'includes/specials/SpecialFilepath.php',
'SpecialImport' => 'includes/specials/SpecialImport.php',
'SpecialListGroupRights' => 'includes/specials/SpecialListgrouprights.php',
+ 'SpecialLockdb' => 'includes/specials/SpecialLockdb.php',
+ 'SpecialMergeHistory' => 'includes/specials/SpecialMergeHistory.php',
'SpecialMostlinkedtemplates' => 'includes/specials/SpecialMostlinkedtemplates.php',
'SpecialPreferences' => 'includes/specials/SpecialPreferences.php',
'SpecialPrefixindex' => 'includes/specials/SpecialPrefixindex.php',
'SpecialRecentChanges' => 'includes/specials/SpecialRecentchanges.php',
'SpecialRecentchangeslinked' => 'includes/specials/SpecialRecentchangeslinked.php',
'SpecialSearch' => 'includes/specials/SpecialSearch.php',
+ 'SpecialSelenium' => 'includes/specials/SpecialSelenium.php',
'SpecialStatistics' => 'includes/specials/SpecialStatistics.php',
'SpecialTags' => 'includes/specials/SpecialTags.php',
+ 'SpecialUnlockdb' => 'includes/specials/SpecialUnlockdb.php',
'SpecialUpload' => 'includes/specials/SpecialUpload.php',
'SpecialVersion' => 'includes/specials/SpecialVersion.php',
'SpecialWhatlinkshere' => 'includes/specials/SpecialWhatlinkshere.php',
'WantedPagesPage' => 'includes/specials/SpecialWantedpages.php',
'WantedTemplatesPage' => 'includes/specials/SpecialWantedtemplates.php',
'WhatLinksHerePage' => 'includes/specials/SpecialWhatlinkshere.php',
- 'WikiImporter' => 'includes/Import.php',
+ 'WikiImporter' => 'includes/ImportXMLReader.php',
'WikiRevision' => 'includes/Import.php',
'WithoutInterwikiPage' => 'includes/specials/SpecialWithoutinterwiki.php',
'UsercreateTemplate' => 'includes/templates/Userlogin.php',
'UserloginTemplate' => 'includes/templates/Userlogin.php',
+ # includes/upload
+ 'UploadBase' => 'includes/upload/UploadBase.php',
+ 'UploadFromStash' => 'includes/upload/UploadFromStash.php',
+ 'UploadFromFile' => 'includes/upload/UploadFromFile.php',
+ 'UploadFromUrl' => 'includes/upload/UploadFromUrl.php',
+
# languages
'Language' => 'languages/Language.php',
'FakeConverter' => 'languages/Language.php',
'LanguageConverter' => 'languages/LanguageConverter.php',
+ # maintenance
+ 'AnsiTermColorer' => 'maintenance/parserTests.inc',
+ 'DbTestPreviewer' => 'maintenance/parserTests.inc',
+ 'DbTestRecorder' => 'maintenance/parserTests.inc',
+ 'DeleteArchivedFilesImplementation' => 'maintenance/deleteArchivedFiles.inc',
+ 'DeleteArchivedRevisionsImplementation' => 'maintenance/deleteArchivedRevisions.inc',
+ 'DummyTermColorer' => 'maintenance/parserTests.inc',
+ 'ParserTest' => 'maintenance/parserTests.inc',
+ 'ParserTestParserHook' => 'maintenance/parserTestsParserHook.php',
+ 'ParserTestStaticParserHook' => 'maintenance/parserTestsStaticParserHook.php',
+ 'RemoteTestRecorder' => 'maintenance/parserTests.inc',
+ 'SevenZipStream' => 'maintenance/7zip.inc',
+ 'TestFileIterator' => 'maintenance/parserTests.inc',
+ 'TestRecorder' => 'maintenance/parserTests.inc',
+
+ # maintenance/tests
+ 'ApiTestSetup' => 'maintenance/tests/ApiSetup.php',
+ 'MediaWikiTestSetup' => 'maintenance/tests/MediaWiki_Setup.php',
+ 'PHPUnitTestRecorder' => 'maintenance/tests/ParserHelpers.php',
+ 'ParserTestSuiteBackend' => 'maintenance/tests/ParserHelpers.php',
+ 'ParserUnitTest' => 'maintenance/tests/ParserHelpers.php',
+ 'SearchEngineTest' => 'maintenance/tests/SearchEngineTest.php',
+ 'UploadFromUrlTest' => 'maintenance/tests/UploadFromUrlTest.php',
+
+ # maintenance/tests/selenium
+ 'SimpleSeleniumTest' => 'maintenance/tests/selenium/SimpleSeleniumTest.php',
+ 'Selenium' => 'maintenance/tests/selenium/Selenium.php',
+ 'SeleniumLoader' => 'maintenance/tests/selenium/SeleniumLoader.php',
+ 'SeleniumTestCase' => 'maintenance/tests/selenium/SeleniumTestCase.php',
+ 'SeleniumTestConsoleLogger' => 'maintenance/tests/selenium/SeleniumTestConsoleLogger.php',
+ 'SeleniumTestHTMLLogger' => 'maintenance/tests/selenium/SeleniumTestHTMLLogger.php',
+ 'SeleniumTestListener' => 'maintenance/tests/selenium/SeleniumTestListener.php',
+ 'SeleniumTestSuite' => 'maintenance/tests/selenium/SeleniumTestSuite.php',
+ 'SimpleSeleniumTest' => 'maintenance/tests/selenium/SimpleSeleniumTest.php',
+
# maintenance/language
+ 'csvStatsOutput' => 'maintenance/language/StatOutputs.php',
'statsOutput' => 'maintenance/language/StatOutputs.php',
- 'wikiStatsOutput' => 'maintenance/language/StatOutputs.php',
'textStatsOutput' => 'maintenance/language/StatOutputs.php',
- 'csvStatsOutput' => 'maintenance/language/StatOutputs.php',
- 'SevenZipStream' => 'maintenance/7zip.inc',
-
+ 'wikiStatsOutput' => 'maintenance/language/StatOutputs.php',
);
class AutoLoader {
/**
* autoload - take a class name and attempt to load it
*
- * @param string $className Name of class we're looking for.
+ * @param $className String: name of class we're looking for.
* @return bool Returning false is important on failure as
* it allows Zend to try and look in other registered autoloaders
* as well.
# The case can sometimes be wrong when unserializing PHP 4 objects
$filename = false;
$lowerClass = strtolower( $className );
+
foreach ( $wgAutoloadLocalClasses as $class2 => $file2 ) {
if ( strtolower( $class2 ) == $lowerClass ) {
$filename = $file2;
}
}
+
if ( !$filename ) {
- if( function_exists( 'wfDebug' ) )
+ if ( function_exists( 'wfDebug' ) )
wfDebug( "Class {$className} not found; skipped loading\n" );
+
# Give up
return false;
}
global $IP;
$filename = "$IP/$filename";
}
+
require( $filename );
+
return true;
}
static function loadAllExtensions() {
global $wgAutoloadClasses;
- foreach( $wgAutoloadClasses as $class => $file ) {
- if( !( class_exists( $class, false ) || interface_exists( $class, false ) ) ) {
+ foreach ( $wgAutoloadClasses as $class => $file ) {
+ if ( !( class_exists( $class, false ) || interface_exists( $class, false ) ) ) {
require( $file );
}
}
}
+
+ /**
+ * Force a class to be run through the autoloader, helpful for things like
+ * Sanitizer that have define()s outside of their class definition. Of course
+ * this wouldn't be necessary if everything in MediaWiki was class-based. Sigh.
+ *
+ * @return Boolean Return the results of class_exists() so we know if we were successful
+ */
+ static function loadClass( $class ) {
+ return class_exists( $class );
+ }
}
function wfLoadAllExtensions() {