Force early binding of SpecialPage descendants.
[lhc/web/wiklou.git] / includes / AutoLoader.php
1 <?php
2
3 /* This defines autoloading handler for whole MediaWiki framework */
4 function __autoload($className) {
5 global $wgAutoloadClasses;
6
7 static $localClasses = array(
8 'AjaxDispatcher' => 'AjaxDispatcher.php',
9 'AjaxCachePolicy' => 'AjaxFunctions.php',
10 'Article' => 'Article.php',
11 'AuthPlugin' => 'AuthPlugin.php',
12 'BagOStuff' => 'BagOStuff.php',
13 'HashBagOStuff' => 'BagOStuff.php',
14 'SqlBagOStuff' => 'BagOStuff.php',
15 'MediaWikiBagOStuff' => 'BagOStuff.php',
16 'TurckBagOStuff' => 'BagOStuff.php',
17 'APCBagOStuff' => 'BagOStuff.php',
18 'eAccelBagOStuff' => 'BagOStuff.php',
19 'Block' => 'Block.php',
20 'CacheManager' => 'CacheManager.php',
21 'CategoryPage' => 'CategoryPage.php',
22 'Categoryfinder' => 'Categoryfinder.php',
23 'RCCacheEntry' => 'ChangesList.php',
24 'ChangesList' => 'ChangesList.php',
25 'OldChangesList' => 'ChangesList.php',
26 'EnhancedChangesList' => 'ChangesList.php',
27 'DBObject' => 'Database.php',
28 'Database' => 'Database.php',
29 'DatabaseMysql' => 'Database.php',
30 'ResultWrapper' => 'Database.php',
31 'OracleBlob' => 'DatabaseOracle.php',
32 'DatabaseOracle' => 'DatabaseOracle.php',
33 'DatabasePostgres' => 'DatabasePostgres.php',
34 'DateFormatter' => 'DateFormatter.php',
35 'DifferenceEngine' => 'DifferenceEngine.php',
36 '_DiffOp' => 'DifferenceEngine.php',
37 '_DiffOp_Copy' => 'DifferenceEngine.php',
38 '_DiffOp_Delete' => 'DifferenceEngine.php',
39 '_DiffOp_Add' => 'DifferenceEngine.php',
40 '_DiffOp_Change' => 'DifferenceEngine.php',
41 '_DiffEngine' => 'DifferenceEngine.php',
42 'Diff' => 'DifferenceEngine.php',
43 'MappedDiff' => 'DifferenceEngine.php',
44 'DiffFormatter' => 'DifferenceEngine.php',
45 'DjVuImage' => 'DjVuImage.php',
46 '_HWLDF_WordAccumulator' => 'DifferenceEngine.php',
47 'WordLevelDiff' => 'DifferenceEngine.php',
48 'TableDiffFormatter' => 'DifferenceEngine.php',
49 'EditPage' => 'EditPage.php',
50 'MWException' => 'Exception.php',
51 'Exif' => 'Exif.php',
52 'FormatExif' => 'Exif.php',
53 'WikiExporter' => 'Export.php',
54 'XmlDumpWriter' => 'Export.php',
55 'DumpOutput' => 'Export.php',
56 'DumpFileOutput' => 'Export.php',
57 'DumpPipeOutput' => 'Export.php',
58 'DumpGZipOutput' => 'Export.php',
59 'DumpBZip2Output' => 'Export.php',
60 'Dump7ZipOutput' => 'Export.php',
61 'DumpFilter' => 'Export.php',
62 'DumpNotalkFilter' => 'Export.php',
63 'DumpNamespaceFilter' => 'Export.php',
64 'DumpLatestFilter' => 'Export.php',
65 'DumpMultiWriter' => 'Export.php',
66 'ExternalEdit' => 'ExternalEdit.php',
67 'ExternalStore' => 'ExternalStore.php',
68 'ExternalStoreDB' => 'ExternalStoreDB.php',
69 'ExternalStoreHttp' => 'ExternalStoreHttp.php',
70 'FakeTitle' => 'FakeTitle.php',
71 'FeedItem' => 'Feed.php',
72 'ChannelFeed' => 'Feed.php',
73 'RSSFeed' => 'Feed.php',
74 'AtomFeed' => 'Feed.php',
75 'FileStore' => 'FileStore.php',
76 'FSException' => 'FileStore.php',
77 'FSTransaction' => 'FileStore.php',
78 'ReplacerCallback' => 'GlobalFunctions.php',
79 'HTMLForm' => 'HTMLForm.php',
80 'HistoryBlob' => 'HistoryBlob.php',
81 'ConcatenatedGzipHistoryBlob' => 'HistoryBlob.php',
82 'HistoryBlobStub' => 'HistoryBlob.php',
83 'HistoryBlobCurStub' => 'HistoryBlob.php',
84 'HTMLCacheUpdate' => 'HTMLCacheUpdate.php',
85 'HTMLCacheUpdateJob' => 'HTMLCacheUpdate.php',
86 'Image' => 'Image.php',
87 'ThumbnailImage' => 'Image.php',
88 'ImageGallery' => 'ImageGallery.php',
89 'ImagePage' => 'ImagePage.php',
90 'ImageHistoryList' => 'ImagePage.php',
91 'ImageRemote' => 'ImageRemote.php',
92 'Job' => 'JobQueue.php',
93 'Licenses' => 'Licenses.php',
94 'License' => 'Licenses.php',
95 'LinkBatch' => 'LinkBatch.php',
96 'LinkCache' => 'LinkCache.php',
97 'LinkFilter' => 'LinkFilter.php',
98 'Linker' => 'Linker.php',
99 'LinksUpdate' => 'LinksUpdate.php',
100 'LoadBalancer' => 'LoadBalancer.php',
101 'LogPage' => 'LogPage.php',
102 'MacBinary' => 'MacBinary.php',
103 'MagicWord' => 'MagicWord.php',
104 'MathRenderer' => 'Math.php',
105 'MessageCache' => 'MessageCache.php',
106 'MimeMagic' => 'MimeMagic.php',
107 'Namespace' => 'Namespace.php',
108 'FakeMemCachedClient' => 'ObjectCache.php',
109 'ObjectCacheManager' => 'ObjectCache.php',
110 'MemCachedClientforWiki' => 'ObjectCache.php',
111 'OutputPage' => 'OutputPage.php',
112 'PageHistory' => 'PageHistory.php',
113 'Parser' => 'Parser.php',
114 'ParserOutput' => 'Parser.php',
115 'ParserOptions' => 'Parser.php',
116 'ParserCache' => 'ParserCache.php',
117 'element' => 'ParserXML.php',
118 'xml2php' => 'ParserXML.php',
119 'ParserXML' => 'ParserXML.php',
120 'ProfilerSimple' => 'ProfilerSimple.php',
121 'ProfilerSimpleUDP' => 'ProfilerSimpleUDP.php',
122 'Profiler' => 'Profiling.php',
123 'ProxyTools' => 'ProxyTools.php',
124 'ProtectionForm' => 'ProtectionForm.php',
125 'QueryPage' => 'QueryPage.php',
126 'PageQueryPage' => 'QueryPage.php',
127 'RawPage' => 'RawPage.php',
128 'RecentChange' => 'RecentChange.php',
129 'Revision' => 'Revision.php',
130 'Sanitizer' => 'Sanitizer.php',
131 'SearchEngine' => 'SearchEngine.php',
132 'SearchResultSet' => 'SearchEngine.php',
133 'SearchResult' => 'SearchEngine.php',
134 'SearchEngineDummy' => 'SearchEngine.php',
135 'SearchMySQL' => 'SearchMySQL.php',
136 'MySQLSearchResultSet' => 'SearchMySQL.php',
137 'SearchMySQL4' => 'SearchMySQL4.php',
138 'SearchTsearch2' => 'SearchTsearch2.php',
139 'SearchUpdate' => 'SearchUpdate.php',
140 'SearchUpdateMyISAM' => 'SearchUpdate.php',
141 'SiteConfiguration' => 'SiteConfiguration.php',
142 'SiteStatsUpdate' => 'SiteStatsUpdate.php',
143 'Skin' => 'Skin.php',
144 'MediaWiki_I18N' => 'SkinTemplate.php',
145 'SkinTemplate' => 'SkinTemplate.php',
146 'QuickTemplate' => 'SkinTemplate.php',
147 'SpecialAllpages' => 'SpecialAllpages.php',
148 'AncientPagesPage' => 'SpecialAncientpages.php',
149 'IPBlockForm' => 'SpecialBlockip.php',
150 'BookSourceList' => 'SpecialBooksources.php',
151 'BrokenRedirectsPage' => 'SpecialBrokenRedirects.php',
152 'CategoriesPage' => 'SpecialCategories.php',
153 'EmailConfirmation' => 'SpecialConfirmemail.php',
154 'ContribsFinder' => 'SpecialContributions.php',
155 'DeadendPagesPage' => 'SpecialDeadendpages.php',
156 'DisambiguationsPage' => 'SpecialDisambiguations.php',
157 'DoubleRedirectsPage' => 'SpecialDoubleRedirects.php',
158 'EmailUserForm' => 'SpecialEmailuser.php',
159 'WikiRevision' => 'SpecialImport.php',
160 'WikiImporter' => 'SpecialImport.php',
161 'ImportStringSource' => 'SpecialImport.php',
162 'ImportStreamSource' => 'SpecialImport.php',
163 'IPUnblockForm' => 'SpecialIpblocklist.php',
164 'ListredirectsPage' => 'SpecialListredirects.php',
165 'ListUsersPage' => 'SpecialListusers.php',
166 'DBLockForm' => 'SpecialLockdb.php',
167 'LogReader' => 'SpecialLog.php',
168 'LogViewer' => 'SpecialLog.php',
169 'LonelyPagesPage' => 'SpecialLonelypages.php',
170 'LongPagesPage' => 'SpecialLongpages.php',
171 'MIMEsearchPage' => 'SpecialMIMEsearch.php',
172 'MostcategoriesPage' => 'SpecialMostcategories.php',
173 'MostimagesPage' => 'SpecialMostimages.php',
174 'MostlinkedPage' => 'SpecialMostlinked.php',
175 'MostlinkedCategoriesPage' => 'SpecialMostlinkedcategories.php',
176 'MostrevisionsPage' => 'SpecialMostrevisions.php',
177 'MovePageForm' => 'SpecialMovepage.php',
178 'NewPagesPage' => 'SpecialNewpages.php',
179 'SpecialPage' => 'SpecialPage.php',
180 'UnlistedSpecialPage' => 'SpecialPage.php',
181 'IncludableSpecialPage' => 'SpecialPage.php',
182 'PopularPagesPage' => 'SpecialPopularpages.php',
183 'PreferencesForm' => 'SpecialPreferences.php',
184 'SpecialPrefixindex' => 'SpecialPrefixindex.php',
185 'RevisionDeleteForm' => 'SpecialRevisiondelete.php',
186 'RevisionDeleter' => 'SpecialRevisiondelete.php',
187 'SpecialSearch' => 'SpecialSearch.php',
188 'ShortPagesPage' => 'SpecialShortpages.php',
189 'UncategorizedCategoriesPage' => 'SpecialUncategorizedcategories.php',
190 'UncategorizedPagesPage' => 'SpecialUncategorizedpages.php',
191 'PageArchive' => 'SpecialUndelete.php',
192 'UndeleteForm' => 'SpecialUndelete.php',
193 'DBUnlockForm' => 'SpecialUnlockdb.php',
194 'UnusedCategoriesPage' => 'SpecialUnusedcategories.php',
195 'UnusedimagesPage' => 'SpecialUnusedimages.php',
196 'UnusedtemplatesPage' => 'SpecialUnusedtemplates.php',
197 'UnwatchedpagesPage' => 'SpecialUnwatchedpages.php',
198 'UploadForm' => 'SpecialUpload.php',
199 'UploadFormMogile' => 'SpecialUploadMogile.php',
200 'LoginForm' => 'SpecialUserlogin.php',
201 'UserrightsForm' => 'SpecialUserrights.php',
202 'SpecialVersion' => 'SpecialVersion.php',
203 'WantedCategoriesPage' => 'SpecialWantedcategories.php',
204 'WantedPagesPage' => 'SpecialWantedpages.php',
205 'WhatLinksHerePage' => 'SpecialWhatlinkshere.php',
206 'SquidUpdate' => 'SquidUpdate.php',
207 'Title' => 'Title.php',
208 'User' => 'User.php',
209 'MailAddress' => 'UserMailer.php',
210 'EmailNotification' => 'UserMailer.php',
211 'WatchedItem' => 'WatchedItem.php',
212 'WebRequest' => 'WebRequest.php',
213 'FauxRequest' => 'WebRequest.php',
214 'MediaWiki' => 'Wiki.php',
215 'WikiError' => 'WikiError.php',
216 'WikiErrorMsg' => 'WikiError.php',
217 'WikiXmlError' => 'WikiError.php',
218 'ZhClient' => 'ZhClient.php',
219 'memcached' => 'memcached-client.php',
220 'UtfNormal' => 'normal/UtfNormal.php'
221 );
222 if ( isset( $localClasses[$className] ) ) {
223 require($localClasses[$className]);
224 } elseif ( isset( $wgAutoloadClasses[$className] ) ) {
225 require( $wgAutoloadClasses[$className] );
226 } else {
227 return false;
228 }
229 }
230
231 function wfLoadAllExtensions() {
232 global $wgAutoloadClasses;
233
234 # It is crucial that SpecialPage.php is included before any special page
235 # extensions are loaded. Otherwise the parent class will not be available
236 # when APC loads the early-bound extension class. Normally this is
237 # guaranteed by entering special pages via SpecialPage members such as
238 # executePath(), but here we have to take a more explicit measure.
239
240 require_once( 'SpecialPage.php' );
241
242 foreach( $wgAutoloadClasses as $class => $file ) {
243 if ( ! class_exists( $class ) ) {
244 require( $file );
245 }
246 }
247 }
248
249 ?>