registration: Initialize PSR-4 namespaces at same stage as normal autoloader
authorAntoine Musso <hashar@free.fr>
Wed, 30 May 2018 19:02:46 +0000 (21:02 +0200)
committerKunal Mehta <legoktm@member.fsf.org>
Thu, 31 May 2018 08:18:21 +0000 (01:18 -0700)
readFromQueue() injects the content of AutoloadClasses to
$wgAutoloadClasses however it missed doing the same for
AutoloadNamespaces.

When using the installer with an extension having AutoloadNamespaces
set, its classes would not be found.

Make ExtensionRegistry append to AutoLoader::$psr4Namespaces, and add
a test to cover the new behavior.

Bug: T195783
Change-Id: Id61155867a4ca7d9bc4a347f8671da74b0fa490b
(cherry picked from commit 224864ebddab2e448f9ae4f247b85c652d9df42e)

includes/registration/ExtensionRegistry.php

index b000dc1..0eb6a9b 100644 (file)
@@ -246,6 +246,7 @@ class ExtensionRegistry {
                        }
                        if ( isset( $info['AutoloadNamespaces'] ) ) {
                                $autoloadNamespaces += $this->processAutoLoader( $dir, $info['AutoloadNamespaces'] );
                        }
                        if ( isset( $info['AutoloadNamespaces'] ) ) {
                                $autoloadNamespaces += $this->processAutoLoader( $dir, $info['AutoloadNamespaces'] );
+                               AutoLoader::$psr4Namespaces += $autoloadNamespaces;
                        }
 
                        // get all requirements/dependencies for this extension
                        }
 
                        // get all requirements/dependencies for this extension