}
$dir = dirname( $path );
+ self::exportAutoloadClassesAndNamespaces(
+ $dir,
+ $info,
+ $autoloadClasses,
+ $autoloadNamespaces
+ );
+
if ( isset( $info['AutoloadClasses'] ) ) {
$autoload = $this->processAutoLoader( $dir, $info['AutoloadClasses'] );
$GLOBALS['wgAutoloadClasses'] += $autoload;
return $data;
}
+ /**
+ * Export autoload classes and namespaces for a given directory and parsed JSON info file.
+ *
+ * @param string $dir
+ * @param array $info
+ * @param array &$autoloadClasses
+ * @param array &$autoloadNamespaces
+ */
+ public static function exportAutoloadClassesAndNamespaces(
+ $dir, $info, &$autoloadClasses = [], &$autoloadNamespaces = []
+ ) {
+ if ( isset( $info['AutoloadClasses'] ) ) {
+ $autoload = self::processAutoLoader( $dir, $info['AutoloadClasses'] );
+ $GLOBALS['wgAutoloadClasses'] += $autoload;
+ $autoloadClasses += $autoload;
+ }
+ if ( isset( $info['AutoloadNamespaces'] ) ) {
+ $autoloadNamespaces += self::processAutoLoader( $dir, $info['AutoloadNamespaces'] );
+ AutoLoader::$psr4Namespaces += $autoloadNamespaces;
+ }
+ }
+
protected function exportExtractedData( array $info ) {
foreach ( $info['globals'] as $key => $val ) {
// If a merge strategy is set, read it and remove it from the value
* @param array $files
* @return array
*/
- protected function processAutoLoader( $dir, array $files ) {
+ protected static function processAutoLoader( $dir, array $files ) {
// Make paths absolute, relative to the JSON file
foreach ( $files as &$file ) {
$file = "$dir/$file";