37 lines
		
	
	
		
			875 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			875 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nulib\app\cli;
 | |
| 
 | |
| use nulib\A;
 | |
| 
 | |
| /**
 | |
|  * Class Aogroup: groupe d'arguments fonctionnant ensemble
 | |
|  */
 | |
| class Aogroup extends Aolist {
 | |
|   function __construct(array $defs, bool $setup=false) {
 | |
|     $marker = A::pop($defs, 0);
 | |
|     if ($marker !== "group") {
 | |
|       throw ArgsException::invalid(null, "group");
 | |
|     }
 | |
|     # réordonner les clés numériques
 | |
|     $defs = array_merge($defs);
 | |
|     parent::__construct($defs, $setup);
 | |
|   }
 | |
| 
 | |
|   function printHelp(?array $what=null): void {
 | |
|     $showGroup = $what["show"] ?? true;
 | |
|     if (!$showGroup) return;
 | |
| 
 | |
|     $prefix = $what["prefix"] ?? null;
 | |
|     if ($prefix !== null) echo $prefix;
 | |
| 
 | |
|     $firstAodef = null;
 | |
|     foreach ($this->all() as $aodef) {
 | |
|       $firstAodef ??= $aodef;
 | |
|       $aodef->printHelp(["help" => false]);
 | |
|     }
 | |
|     if ($firstAodef !== null) {
 | |
|       $firstAodef->printHelp(["options" => false]);
 | |
|     }
 | |
|   }
 | |
| }
 |