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