43 lines
1.2 KiB
PHP
43 lines
1.2 KiB
PHP
<?php
|
|
namespace nur\php;
|
|
|
|
use nur\cli\Application;
|
|
use nur\data\types\Metadata;
|
|
use nur\msg;
|
|
use nur\str;
|
|
|
|
class UpdateClassesApp extends Application {
|
|
const MAPPINGS_SCHEMA = [[
|
|
"package" => ["string", null, "package de base"],
|
|
"path" => ["string", null, "répertoire source"],
|
|
"classes" => ["array", null, "liste de classes à mettre à jour"],
|
|
"allow_undefined" => ["bool", false, "autoriser les constantes non définies dans la classe?"],
|
|
]];
|
|
const MAPPINGS = [];
|
|
|
|
function main() {
|
|
$updater = new SrcUpdater();
|
|
|
|
$md = new Metadata(self::MAPPINGS_SCHEMA);
|
|
$mappings = static::MAPPINGS;
|
|
$md->ensureSchema($mappings);
|
|
|
|
foreach ($mappings as $title => $mapping) {
|
|
msg::section($title);
|
|
[
|
|
"package" => $package, "path" => $path, "classes" => $classes,
|
|
"allow_undefined" => $allowUndefined,
|
|
] = $mapping;
|
|
$updater->setAllowUndefined($allowUndefined);
|
|
foreach ($classes as $class) {
|
|
msg::info($class);
|
|
$file = $class;
|
|
$file = str::without_prefix($package, $file);
|
|
$file = str_replace("\\", "/", $file);
|
|
$file = "$path/$file.php";
|
|
$updater->update($file);
|
|
}
|
|
}
|
|
}
|
|
}
|