Force early binding of SpecialPage descendants.
authorTim Starling <tstarling@users.mediawiki.org>
Thu, 29 Jun 2006 08:26:30 +0000 (08:26 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Thu, 29 Jun 2006 08:26:30 +0000 (08:26 +0000)
includes/AutoLoader.php

index d023303..8591015 100644 (file)
@@ -230,6 +230,15 @@ function __autoload($className) {
 
 function wfLoadAllExtensions() {
        global $wgAutoloadClasses;
+
+       # It is crucial that SpecialPage.php is included before any special page 
+       # extensions are loaded. Otherwise the parent class will not be available
+       # when APC loads the early-bound extension class. Normally this is 
+       # guaranteed by entering special pages via SpecialPage members such as 
+       # executePath(), but here we have to take a more explicit measure.
+       
+       require_once( 'SpecialPage.php' );
+       
        foreach( $wgAutoloadClasses as $class => $file ) {
                if ( ! class_exists( $class ) ) {
                        require( $file );