40 lines
		
	
	
		
			816 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			816 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?PHP
 | 
						|
/**
 | 
						|
 * Generates a class map, based on a constant AUTOLOAD_DIRS.
 | 
						|
 *
 | 
						|
 * @author Joshua Ramon Enslin <joshua@museum-digital.de>
 | 
						|
 */
 | 
						|
declare(strict_types = 1);
 | 
						|
 | 
						|
require_once __DIR__ . '/../inc/constants.php';
 | 
						|
 | 
						|
$classesToAutoload = [];
 | 
						|
 | 
						|
// Load list of classes
 | 
						|
 | 
						|
foreach (AUTOLOAD_DIRS as $dir) {
 | 
						|
 | 
						|
    $dir = str_replace(realpath(__DIR__ . "/../") . "/inc/../", "", $dir);
 | 
						|
    foreach (glob($dir . "/*.php") as $file) {
 | 
						|
        $classesToAutoload[pathinfo(__DIR__ . '/../' . $file, PATHINFO_FILENAME)] = $file;
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
// Output
 | 
						|
 | 
						|
$output = [];
 | 
						|
 | 
						|
foreach ($classesToAutoload as $key => $value) {
 | 
						|
 | 
						|
    $output[] = '    \'' . $key . '\' => __DIR__ . \'/../' . $value . '\',';
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
$toWrite = '<?PHP
 | 
						|
const AUTOLOAD_CLASS_MAP = [
 | 
						|
' . implode(PHP_EOL, $output) . '
 | 
						|
];';
 | 
						|
 | 
						|
file_put_contents("tmp-class-map.php", $toWrite);
 |