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