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