8use MediaWiki\MainConfigSchema;
26 return [
'HookContainer',
'VirtualDomains',
'ExtensionTaskSpecs' ];
31 $this->
getContext()->provide(
'VirtualDomains', [] );
32 $this->
getContext()->provide(
'ExtensionTaskSpecs', [] );
33 return Status::newGood();
38 define(
'MW_EXTENSIONS_LOADED',
true );
40 $legacySchemaHooks = $this->getAutoExtensionLegacySchemaHooks();
41 $data = $this->getAutoExtensionData();
42 if ( isset( $data[
'globals'][
'wgHooks'][
'LoadExtensionSchemaUpdates'] ) ) {
43 $legacySchemaHooks = array_merge( $legacySchemaHooks,
44 $data[
'globals'][
'wgHooks'][
'LoadExtensionSchemaUpdates'] );
46 $extDeprecatedHooks = $data[
'attributes'][
'DeprecatedHooks'] ?? [];
48 $legacyHooks = $legacySchemaHooks ? [
'LoadExtensionSchemaUpdates' => $legacySchemaHooks ] : [];
51 new StaticHookRegistry(
53 $data[
'attributes'][
'Hooks'] ?? [],
59 $this->
getContext()->provide(
'VirtualDomains',
60 $data[
'attributes'][
'DatabaseVirtualDomains'] ?? [] );
61 $this->
getContext()->provide(
'ExtensionTaskSpecs',
62 $data[
'attributes'][
'InstallerTasks'] ?? [] );
64 return Status::newGood();
71 return MW_INSTALL_PATH .
'/extensions';
78 return MW_INSTALL_PATH .
'/skins';
87 private function getAutoExtensionLegacySchemaHooks() {
88 $exts = $this->getOption(
'Extensions' );
89 $extensionsDir = $this->getExtensionsDir();
91 foreach ( $exts as $e ) {
92 if ( file_exists(
"$extensionsDir/$e/$e.php" ) ) {
93 $files[] =
"$extensionsDir/$e/$e.php";
98 return $this->includeExtensionFiles( $files );
111 private function includeExtensionFiles( $files ) {
121 foreach ( MainConfigSchema::listDefaultValues(
'wg' ) as $var => $value ) {
130 foreach ( $files as $file ) {
139 $hooksWeWant =
$wgHooks[
'LoadExtensionSchemaUpdates'] ?? [];
150 private function getAutoExtensionData() {
151 $exts = $this->getOption(
'Extensions' );
153 $extensionProcessor =
new ExtensionProcessor();
154 foreach ( $exts as $e ) {
155 $jsonPath = $this->getExtensionsDir() .
"/$e/extension.json";
156 if ( file_exists( $jsonPath ) ) {
157 $extensionProcessor->extractInfoFromFile( $jsonPath );
161 $autoload = $extensionProcessor->getExtractedAutoloadInfo();
166 return $extensionProcessor->getExtractedInfo();
if(!defined('MEDIAWIKI')) if(!defined( 'MW_ENTRY_POINT')) global $IP
Environment checks.
if(!defined('MW_SETUP_CALLBACK'))
This initializes autoloading for MediaWiki core, extensions, and vendored libraries.
static registerClasses(array $files)
Register a file to load the given class from.
static loadFiles(array $files)
Batch version of loadFile()
static registerNamespaces(array $dirs)
Register a directory to load the classes of a given namespace from, per PSR4.
$wgStyleDirectory
Config variable stub for the StyleDirectory setting, for use by phpdoc and IDEs.
$wgHooks
Config variable stub for the Hooks setting, for use by phpdoc and IDEs.
$wgExtensionDirectory
Config variable stub for the ExtensionDirectory setting, for use by phpdoc and IDEs.