modifs.mineures sans commentaires
This commit is contained in:
		
							parent
							
								
									19daaa2893
								
							
						
					
					
						commit
						4dc4b97974
					
				@ -1,7 +1,7 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace nur;
 | 
			
		||||
 | 
			
		||||
use nur\b\ExitException;
 | 
			
		||||
use nur\b\ExitError;
 | 
			
		||||
use nur\b\ui\AbstractMessenger;
 | 
			
		||||
use nur\b\ui\IMessenger;
 | 
			
		||||
use nur\b\ValueException;
 | 
			
		||||
@ -122,5 +122,5 @@ class _messenger {
 | 
			
		||||
    return self::get()->addMessage([self::USER => $message], self::_info(), self::_normal());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static final function die($message): void { throw new ExitException(1, $message); }
 | 
			
		||||
  static final function die($message): void { throw new ExitError(1, $message); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										31
									
								
								nur_src/b/ExitError.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								nur_src/b/ExitError.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace nur\b;
 | 
			
		||||
 | 
			
		||||
use Error;
 | 
			
		||||
use Throwable;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Class ExitException: une exception qui indique que l'application souhaite
 | 
			
		||||
 * quitter normalement, avec éventuellement un code d'erreur.
 | 
			
		||||
 */
 | 
			
		||||
class ExitError extends Error {
 | 
			
		||||
  function __construct(int $exitcode=0, $userMessage=null, Throwable $previous=null) {
 | 
			
		||||
    parent::__construct(null, $exitcode, $previous);
 | 
			
		||||
    $this->userMessage = $userMessage;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function isError(): bool {
 | 
			
		||||
    return $this->getCode() !== 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /** @var ?string */
 | 
			
		||||
  protected $userMessage;
 | 
			
		||||
 | 
			
		||||
  function haveMessage(): bool {
 | 
			
		||||
    return $this->userMessage !== null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function getUserMessage(): ?string {
 | 
			
		||||
    return $this->userMessage;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace nur\b;
 | 
			
		||||
 | 
			
		||||
use Throwable;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Class ExitException: une exception qui indique que l'application souhaite
 | 
			
		||||
 * quitter normalement, avec éventuellement un code d'erreur.
 | 
			
		||||
 */
 | 
			
		||||
class ExitException extends UserException {
 | 
			
		||||
  function __construct(int $exitcode=0, $message=null, Throwable $previous=null) {
 | 
			
		||||
    parent::__construct($message, $exitcode, $previous);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function isError(): bool {
 | 
			
		||||
    return $this->getCode() !== 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function haveMessage(): bool {
 | 
			
		||||
    return $this->getUserMessage() || $this->getTechMessage();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -2,7 +2,7 @@
 | 
			
		||||
namespace nur\cli;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
use nur\b\ExitException;
 | 
			
		||||
use nur\b\ExitError;
 | 
			
		||||
use nur\b\ValueException;
 | 
			
		||||
use nur\config;
 | 
			
		||||
use nur\config\ArrayConfig;
 | 
			
		||||
@ -183,7 +183,7 @@ abstract class Application {
 | 
			
		||||
      if ($app === null) $app = new static();
 | 
			
		||||
      static::_app_configure($app);
 | 
			
		||||
      static::_app_main($app);
 | 
			
		||||
    } catch (ExitException $e) {
 | 
			
		||||
    } catch (ExitError $e) {
 | 
			
		||||
      if ($e->haveMessage()) msg::error($e);
 | 
			
		||||
      exit($e->getCode());
 | 
			
		||||
    } catch (Exception $e) {
 | 
			
		||||
@ -196,20 +196,20 @@ abstract class Application {
 | 
			
		||||
   * sortir de l'application avec un code d'erreur, qui est 0 par défaut (i.e
 | 
			
		||||
   * pas d'erreur)
 | 
			
		||||
   *
 | 
			
		||||
   * équivalent à lancer l'exception {@link ExitException}
 | 
			
		||||
   * équivalent à lancer l'exception {@link ExitError}
 | 
			
		||||
   */
 | 
			
		||||
  protected static final function exit(int $exitcode=0, $message=null) {
 | 
			
		||||
    throw new ExitException($exitcode, $message);
 | 
			
		||||
    throw new ExitError($exitcode, $message);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * sortir de l'application avec un code d'erreur, qui vaut 1 par défaut (i.e
 | 
			
		||||
   * une erreur s'est produite)
 | 
			
		||||
   *
 | 
			
		||||
   * équivalent à lancer l'exception {@link ExitException}
 | 
			
		||||
   * équivalent à lancer l'exception {@link ExitError}
 | 
			
		||||
   */
 | 
			
		||||
  protected static final function die($message=null, int $exitcode=1) {
 | 
			
		||||
    throw new ExitException($exitcode, $message);
 | 
			
		||||
    throw new ExitError($exitcode, $message);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const PROFILE_SECTION = [
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@
 | 
			
		||||
namespace nur\cli;
 | 
			
		||||
 | 
			
		||||
use nur\A;
 | 
			
		||||
use nur\b\ExitException;
 | 
			
		||||
use nur\b\ExitError;
 | 
			
		||||
use nur\b\io\IWriter;
 | 
			
		||||
use nur\b\params\Tparametrable;
 | 
			
		||||
use nur\b\ui\AbstractMessenger;
 | 
			
		||||
@ -75,7 +75,7 @@ class Console extends AbstractMessenger {
 | 
			
		||||
  protected function processMsgOptions(array $options): void {
 | 
			
		||||
    $exit = $options[self::KEY_EXIT];
 | 
			
		||||
    if ($exit !== null && $exit !== false) {
 | 
			
		||||
      throw new ExitException(
 | 
			
		||||
      throw new ExitError(
 | 
			
		||||
        is_int($exit)? $exit: 1,
 | 
			
		||||
        is_string($exit)? $exit: null,
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ namespace nur\v\base;
 | 
			
		||||
use nur\A;
 | 
			
		||||
use nur\b\coll\BaseArray;
 | 
			
		||||
use nur\b\coll\GenericArray;
 | 
			
		||||
use nur\b\ExitException;
 | 
			
		||||
use nur\b\ExitError;
 | 
			
		||||
use nur\co;
 | 
			
		||||
use nur\config;
 | 
			
		||||
use nur\func;
 | 
			
		||||
@ -274,7 +274,7 @@ abstract class AbstractPageContainer implements IPageContainer {
 | 
			
		||||
      $this->overridePrint($page);
 | 
			
		||||
 | 
			
		||||
    } catch (Throwable $e) {
 | 
			
		||||
      if ($e instanceof ExitException && !$e->isError()) {
 | 
			
		||||
      if ($e instanceof ExitError && !$e->isError()) {
 | 
			
		||||
        # NOP
 | 
			
		||||
      } else {
 | 
			
		||||
        $this->setError(null, $e);
 | 
			
		||||
 | 
			
		||||
@ -1,22 +1,31 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace nur\sery;
 | 
			
		||||
 | 
			
		||||
use Error;
 | 
			
		||||
use Throwable;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Class ExitException: une exception qui indique que l'application souhaite
 | 
			
		||||
 * quitter normalement, avec éventuellement un code d'erreur.
 | 
			
		||||
 */
 | 
			
		||||
class ExitException extends UserException {
 | 
			
		||||
class ExitError extends Error {
 | 
			
		||||
  function __construct(int $exitcode=0, $userMessage=null, Throwable $previous=null) {
 | 
			
		||||
    parent::__construct($userMessage, null, $exitcode, $previous);
 | 
			
		||||
    parent::__construct(null, $exitcode, $previous);
 | 
			
		||||
    $this->userMessage = $userMessage;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function isError(): bool {
 | 
			
		||||
    return $this->getCode() !== 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /** @var ?string */
 | 
			
		||||
  protected $userMessage;
 | 
			
		||||
 | 
			
		||||
  function haveMessage(): bool {
 | 
			
		||||
    return $this->getUserMessage() !== null;
 | 
			
		||||
    return $this->userMessage !== null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function getUserMessage(): ?string {
 | 
			
		||||
    return $this->userMessage;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -2,7 +2,7 @@
 | 
			
		||||
namespace nur\sery\wip\cli;
 | 
			
		||||
 | 
			
		||||
use Exception;
 | 
			
		||||
use nur\sery\ExitException;
 | 
			
		||||
use nur\sery\ExitError;
 | 
			
		||||
use nur\sery\output\msg;
 | 
			
		||||
use nur\sery\output\std\StdMessenger;
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@ abstract class Application {
 | 
			
		||||
      if ($app === null) $app = new static();
 | 
			
		||||
      static::_app_configure($app);
 | 
			
		||||
      static::_app_main($app);
 | 
			
		||||
    } catch (ExitException $e) {
 | 
			
		||||
    } catch (ExitError $e) {
 | 
			
		||||
      msg::error($e->getUserMessage());
 | 
			
		||||
      exit($e->getCode());
 | 
			
		||||
    } catch (Exception $e) {
 | 
			
		||||
@ -44,20 +44,20 @@ abstract class Application {
 | 
			
		||||
   * sortir de l'application avec un code d'erreur, qui est 0 par défaut (i.e
 | 
			
		||||
   * pas d'erreur)
 | 
			
		||||
   *
 | 
			
		||||
   * équivalent à lancer l'exception {@link ExitException}
 | 
			
		||||
   * équivalent à lancer l'exception {@link ExitError}
 | 
			
		||||
   */
 | 
			
		||||
  protected static final function exit(int $exitcode=0, $message=null) {
 | 
			
		||||
    throw new ExitException($exitcode, $message);
 | 
			
		||||
    throw new ExitError($exitcode, $message);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * sortir de l'application avec un code d'erreur, qui vaut 1 par défaut (i.e
 | 
			
		||||
   * une erreur s'est produite)
 | 
			
		||||
   *
 | 
			
		||||
   * équivalent à lancer l'exception {@link ExitException}
 | 
			
		||||
   * équivalent à lancer l'exception {@link ExitError}
 | 
			
		||||
   */
 | 
			
		||||
  protected static final function die($message=null, int $exitcode=1) {
 | 
			
		||||
    throw new ExitException($exitcode, $message);
 | 
			
		||||
    throw new ExitError($exitcode, $message);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const ARGS = [];
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user