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();
 |