modifs.mineures sans commentaires
This commit is contained in:
		
							parent
							
								
									64fd232f71
								
							
						
					
					
						commit
						e62e4ebfa4
					
				@ -5,7 +5,7 @@ namespace nur\sery\output;
 | 
			
		||||
 * Interface IMessenger: un objet pouvant afficher des messages de l'application
 | 
			
		||||
 */
 | 
			
		||||
interface IMessenger {
 | 
			
		||||
  const LEVEL_DEBUG = -1, LEVEL_NORMAL = 0, LEVEL_MAJOR = 1;
 | 
			
		||||
  const LEVEL_DEBUG = -1, LEVEL_NORMAL = 0, LEVEL_MAJOR = 1, LEVEL_NONE = 2;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * commencer une section.
 | 
			
		||||
 | 
			
		||||
@ -11,6 +11,7 @@ class StdMessenger implements IMessenger {
 | 
			
		||||
    self::LEVEL_DEBUG,
 | 
			
		||||
    self::LEVEL_NORMAL,
 | 
			
		||||
    self::LEVEL_MAJOR,
 | 
			
		||||
    self::LEVEL_NONE,
 | 
			
		||||
  ];
 | 
			
		||||
  const LEVEL_MAP = [
 | 
			
		||||
    "debug" => self::LEVEL_DEBUG,
 | 
			
		||||
@ -19,16 +20,19 @@ class StdMessenger implements IMessenger {
 | 
			
		||||
    "n" => self::LEVEL_NORMAL,
 | 
			
		||||
    "major" => self::LEVEL_MAJOR,
 | 
			
		||||
    "m" => self::LEVEL_MAJOR,
 | 
			
		||||
    "none" => self::LEVEL_NONE,
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  protected static function verifix_level($level, bool $debug): int {
 | 
			
		||||
    if ($level === null) $level = $debug? self::LEVEL_DEBUG: self::LEVEL_NORMAL;
 | 
			
		||||
  protected static function verifix_level($level, int $max_level=self::LEVEL_MAJOR): int {
 | 
			
		||||
    if (!in_array($level, self::VALID_LEVELS, true)) {
 | 
			
		||||
      $level = cl::get(self::LEVEL_MAP, $level, $level);
 | 
			
		||||
    }
 | 
			
		||||
    if (!in_array($level, self::VALID_LEVELS, true)) {
 | 
			
		||||
      throw new Exception("$level: invalid level");
 | 
			
		||||
    }
 | 
			
		||||
    if ($level > $max_level) {
 | 
			
		||||
      throw new Exception("$level: level not allowed here");
 | 
			
		||||
    }
 | 
			
		||||
    return $level;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -78,8 +82,12 @@ class StdMessenger implements IMessenger {
 | 
			
		||||
    $output = cl::get($params, "output");
 | 
			
		||||
    $color = cl::get($params, "color");
 | 
			
		||||
    $debug = boolval(cl::get($params, "debug"));
 | 
			
		||||
    $minLevel = self::verifix_level(cl::get($params, "min_level"), $debug);
 | 
			
		||||
    $defaultLevel = self::verifix_level(cl::get($params, "default_level"), false);
 | 
			
		||||
    $defaultLevel = cl::get($params, "default_level");
 | 
			
		||||
    if ($defaultLevel === null) $defaultLevel = self::LEVEL_NORMAL;
 | 
			
		||||
    $defaultLevel = self::verifix_level($defaultLevel);
 | 
			
		||||
    $minLevel = cl::get($params, "min_level");
 | 
			
		||||
    if ($minLevel === null) $minLevel = $debug? self::LEVEL_DEBUG: self::LEVEL_NORMAL;
 | 
			
		||||
    $minLevel = self::verifix_level($minLevel, self::LEVEL_NONE);
 | 
			
		||||
 | 
			
		||||
    $params = [
 | 
			
		||||
      "color" => $color,
 | 
			
		||||
@ -91,8 +99,8 @@ class StdMessenger implements IMessenger {
 | 
			
		||||
      $this->out = new StdOutput(STDOUT, $params);
 | 
			
		||||
      $this->err = new StdOutput(STDERR, $params);
 | 
			
		||||
    }
 | 
			
		||||
    $this->minLevel = $minLevel;
 | 
			
		||||
    $this->defaultLevel = $defaultLevel;
 | 
			
		||||
    $this->minLevel = $minLevel;
 | 
			
		||||
    $this->inSection = false;
 | 
			
		||||
    $this->titles = [];
 | 
			
		||||
    $this->title = null;
 | 
			
		||||
@ -106,12 +114,12 @@ class StdMessenger implements IMessenger {
 | 
			
		||||
  /** @var StdOutput la sortie d'erreur */
 | 
			
		||||
  protected $err;
 | 
			
		||||
 | 
			
		||||
  /** @var int level minimum que doivent avoir les messages pour être affichés */
 | 
			
		||||
  protected $minLevel;
 | 
			
		||||
 | 
			
		||||
  /** @var int level par défaut dans lequel les messages sont affichés */
 | 
			
		||||
  protected $defaultLevel;
 | 
			
		||||
 | 
			
		||||
  /** @var int level minimum que doivent avoir les messages pour être affichés */
 | 
			
		||||
  protected $minLevel;
 | 
			
		||||
 | 
			
		||||
  protected function checkLevel(?int &$level): bool {
 | 
			
		||||
    if ($level === null) $level = $this->defaultLevel;
 | 
			
		||||
    return $level >= $this->minLevel;
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,9 @@
 | 
			
		||||
  si pas de message, prendre le message de l'exception par défaut
 | 
			
		||||
* [ ] possibilité de paramétrer le nom du fichier destination pour faire une
 | 
			
		||||
  rotation des logs
 | 
			
		||||
* [ ] support quiet (uniquement major), very-quiet (aucun message n'est affiché)
 | 
			
		||||
* [ ] support verbose? cela suppose rajouter un niveau supplémentaire `LEVEL_MINOR`
 | 
			
		||||
  entre `LEVEL_DEBUG` et `LEVEL_NORMAL`
 | 
			
		||||
 | 
			
		||||
## Principe
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user