* @var array
*/
protected $envPreps = array(
- 'envPrepExtension',
'envPrepServer',
'envPrepPath',
);
'wgGitBin',
'IP',
'wgScriptPath',
- 'wgScriptExtension',
'wgMetaNamespace',
'wgDeletedDirectory',
'wgEnableUploads',
// $wgLogo is probably wrong (bug 48084); set something that will work.
// Single quotes work fine here, as LocalSettingsGenerator outputs this unescaped.
- 'wgLogo' => '$wgScriptPath/resources/assets/wiki.png',
+ 'wgLogo' => '$wgResourceBasePath/resources/assets/wiki.png',
);
/**
public $licenses = array(
'cc-by' => array(
'url' => 'https://creativecommons.org/licenses/by/3.0/',
- 'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by.png',
+ 'icon' => '$wgResourceBasePath/resources/assets/licenses/cc-by.png',
),
'cc-by-sa' => array(
'url' => 'https://creativecommons.org/licenses/by-sa/3.0/',
- 'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by-sa.png',
+ 'icon' => '$wgResourceBasePath/resources/assets/licenses/cc-by-sa.png',
),
'cc-by-nc-sa' => array(
'url' => 'https://creativecommons.org/licenses/by-nc-sa/3.0/',
- 'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by-nc-sa.png',
+ 'icon' => '$wgResourceBasePath/resources/assets/licenses/cc-by-nc-sa.png',
),
'cc-0' => array(
'url' => 'https://creativecommons.org/publicdomain/zero/1.0/',
- 'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-0.png',
+ 'icon' => '$wgResourceBasePath/resources/assets/licenses/cc-0.png',
),
'pd' => array(
'url' => '',
- 'icon' => '{$wgResourceBasePath}/resources/assets/licenses/public-domain.png',
+ 'icon' => '$wgResourceBasePath/resources/assets/licenses/public-domain.png',
),
'gfdl' => array(
'url' => 'https://www.gnu.org/copyleft/fdl.html',
- 'icon' => '{$wgResourceBasePath}/resources/assets/licenses/gnu-fdl.png',
+ 'icon' => '$wgResourceBasePath/resources/assets/licenses/gnu-fdl.png',
),
'none' => array(
'url' => '',
*/
abstract protected function envGetDefaultServer();
- /**
- * Environment prep for setting the preferred PHP file extension.
- */
- protected function envPrepExtension() {
- // @todo FIXME: Detect this properly
- if ( defined( 'MW_INSTALL_PHP5_EXT' ) ) {
- $ext = '.php5';
- } else {
- $ext = '.php';
- }
- $this->setVar( 'wgScriptExtension', $ext );
- }
-
/**
* Environment prep for setting $IP and $wgScriptPath.
*/
*/
global $wgAutoloadClasses;
$wgAutoloadClasses = array();
+ $queue = array();
require "$IP/includes/DefaultSettings.php";
foreach ( $exts as $e ) {
- require_once "$IP/extensions/$e/$e.php";
+ if ( file_exists( "$IP/extensions/$e/extension.json" ) ) {
+ $queue["$IP/extensions/$e/extension.json"] = 1;
+ } else {
+ require_once "$IP/extensions/$e/$e.php";
+ }
}
+ $registry = new ExtensionRegistry();
+ $data = $registry->readFromQueue( $queue );
+ $wgAutoloadClasses += $data['autoload'];
+
$hooksWeWant = isset( $wgHooks['LoadExtensionSchemaUpdates'] ) ?
$wgHooks['LoadExtensionSchemaUpdates'] : array();
+ if ( isset( $data['globals']['wgHooks']['LoadExtensionSchemaUpdates'] ) ) {
+ $hooksWeWant = array_merge_recursive(
+ $hooksWeWant,
+ $data['globals']['wgHooks']['LoadExtensionSchemaUpdates']
+ );
+ }
// Unset everyone else's hooks. Lord knows what someone might be doing
// in ParserFirstCallInit (see bug 27171)
$GLOBALS['wgHooks'] = array( 'LoadExtensionSchemaUpdates' => $hooksWeWant );