69 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * @file include/autoloader.php
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief composer-derived autoloader init
 | 
						|
 **/
 | 
						|
class FriendicaAutoloaderInit
 | 
						|
{
 | 
						|
    private static $loader;
 | 
						|
 | 
						|
    public static function loadClassLoader($class)
 | 
						|
    {
 | 
						|
        if ('Composer\Autoload\ClassLoader' === $class) {
 | 
						|
            require __DIR__ . '/autoloader/ClassLoader.php';
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public static function getLoader()
 | 
						|
    {
 | 
						|
        if (null !== self::$loader) {
 | 
						|
            return self::$loader;
 | 
						|
        }
 | 
						|
 | 
						|
        spl_autoload_register(array('FriendicaAutoloaderInit', 'loadClassLoader'), true, true);
 | 
						|
        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
 | 
						|
        spl_autoload_unregister(array('FriendicaAutoloaderInit', 'loadClassLoader'));
 | 
						|
 | 
						|
        // library 
 | 
						|
        $map = require __DIR__ . '/autoloader/autoload_namespaces.php';
 | 
						|
        foreach ($map as $namespace => $path) {
 | 
						|
            $loader->set($namespace, $path);
 | 
						|
        }
 | 
						|
 | 
						|
        $map = require __DIR__ . '/autoloader/autoload_psr4.php';
 | 
						|
        foreach ($map as $namespace => $path) {
 | 
						|
            $loader->setPsr4($namespace, $path);
 | 
						|
        }
 | 
						|
 | 
						|
        $classMap = require __DIR__ . '/autoloader/autoload_classmap.php';
 | 
						|
        if ($classMap) {
 | 
						|
            $loader->addClassMap($classMap);
 | 
						|
        }
 | 
						|
        
 | 
						|
        $loader->register(true);
 | 
						|
        
 | 
						|
        $includeFiles = require __DIR__ . '/autoloader/autoload_files.php';
 | 
						|
        foreach ($includeFiles as $fileIdentifier => $file) {
 | 
						|
            friendicaRequire($fileIdentifier, $file);
 | 
						|
        }
 | 
						|
        
 | 
						|
 | 
						|
        return $loader;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
function friendicaRequire($fileIdentifier, $file)
 | 
						|
{
 | 
						|
    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
 | 
						|
        require $file;
 | 
						|
 | 
						|
        $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
return FriendicaAutoloaderInit::getLoader();
 |