modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2024-07-16 01:54:30 +04:00
parent 19daaa2893
commit 4dc4b97974
8 changed files with 61 additions and 43 deletions

View File

@ -1,7 +1,7 @@
<?php <?php
namespace nur; namespace nur;
use nur\b\ExitException; use nur\b\ExitError;
use nur\b\ui\AbstractMessenger; use nur\b\ui\AbstractMessenger;
use nur\b\ui\IMessenger; use nur\b\ui\IMessenger;
use nur\b\ValueException; use nur\b\ValueException;
@ -122,5 +122,5 @@ class _messenger {
return self::get()->addMessage([self::USER => $message], self::_info(), self::_normal()); 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
View 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;
}
}

View File

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

View File

@ -2,7 +2,7 @@
namespace nur\cli; namespace nur\cli;
use Exception; use Exception;
use nur\b\ExitException; use nur\b\ExitError;
use nur\b\ValueException; use nur\b\ValueException;
use nur\config; use nur\config;
use nur\config\ArrayConfig; use nur\config\ArrayConfig;
@ -183,7 +183,7 @@ abstract class Application {
if ($app === null) $app = new static(); if ($app === null) $app = new static();
static::_app_configure($app); static::_app_configure($app);
static::_app_main($app); static::_app_main($app);
} catch (ExitException $e) { } catch (ExitError $e) {
if ($e->haveMessage()) msg::error($e); if ($e->haveMessage()) msg::error($e);
exit($e->getCode()); exit($e->getCode());
} catch (Exception $e) { } 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 * sortir de l'application avec un code d'erreur, qui est 0 par défaut (i.e
* pas d'erreur) * 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) { 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 * sortir de l'application avec un code d'erreur, qui vaut 1 par défaut (i.e
* une erreur s'est produite) * 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) { protected static final function die($message=null, int $exitcode=1) {
throw new ExitException($exitcode, $message); throw new ExitError($exitcode, $message);
} }
const PROFILE_SECTION = [ const PROFILE_SECTION = [

View File

@ -2,7 +2,7 @@
namespace nur\cli; namespace nur\cli;
use nur\A; use nur\A;
use nur\b\ExitException; use nur\b\ExitError;
use nur\b\io\IWriter; use nur\b\io\IWriter;
use nur\b\params\Tparametrable; use nur\b\params\Tparametrable;
use nur\b\ui\AbstractMessenger; use nur\b\ui\AbstractMessenger;
@ -75,7 +75,7 @@ class Console extends AbstractMessenger {
protected function processMsgOptions(array $options): void { protected function processMsgOptions(array $options): void {
$exit = $options[self::KEY_EXIT]; $exit = $options[self::KEY_EXIT];
if ($exit !== null && $exit !== false) { if ($exit !== null && $exit !== false) {
throw new ExitException( throw new ExitError(
is_int($exit)? $exit: 1, is_int($exit)? $exit: 1,
is_string($exit)? $exit: null, is_string($exit)? $exit: null,
); );

View File

@ -4,7 +4,7 @@ namespace nur\v\base;
use nur\A; use nur\A;
use nur\b\coll\BaseArray; use nur\b\coll\BaseArray;
use nur\b\coll\GenericArray; use nur\b\coll\GenericArray;
use nur\b\ExitException; use nur\b\ExitError;
use nur\co; use nur\co;
use nur\config; use nur\config;
use nur\func; use nur\func;
@ -274,7 +274,7 @@ abstract class AbstractPageContainer implements IPageContainer {
$this->overridePrint($page); $this->overridePrint($page);
} catch (Throwable $e) { } catch (Throwable $e) {
if ($e instanceof ExitException && !$e->isError()) { if ($e instanceof ExitError && !$e->isError()) {
# NOP # NOP
} else { } else {
$this->setError(null, $e); $this->setError(null, $e);

View File

@ -1,22 +1,31 @@
<?php <?php
namespace nur\sery; namespace nur\sery;
use Error;
use Throwable; use Throwable;
/** /**
* Class ExitException: une exception qui indique que l'application souhaite * Class ExitException: une exception qui indique que l'application souhaite
* quitter normalement, avec éventuellement un code d'erreur. * 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) { 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 { function isError(): bool {
return $this->getCode() !== 0; return $this->getCode() !== 0;
} }
/** @var ?string */
protected $userMessage;
function haveMessage(): bool { function haveMessage(): bool {
return $this->getUserMessage() !== null; return $this->userMessage !== null;
}
function getUserMessage(): ?string {
return $this->userMessage;
} }
} }

View File

@ -2,7 +2,7 @@
namespace nur\sery\wip\cli; namespace nur\sery\wip\cli;
use Exception; use Exception;
use nur\sery\ExitException; use nur\sery\ExitError;
use nur\sery\output\msg; use nur\sery\output\msg;
use nur\sery\output\std\StdMessenger; use nur\sery\output\std\StdMessenger;
@ -31,7 +31,7 @@ abstract class Application {
if ($app === null) $app = new static(); if ($app === null) $app = new static();
static::_app_configure($app); static::_app_configure($app);
static::_app_main($app); static::_app_main($app);
} catch (ExitException $e) { } catch (ExitError $e) {
msg::error($e->getUserMessage()); msg::error($e->getUserMessage());
exit($e->getCode()); exit($e->getCode());
} catch (Exception $e) { } 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 * sortir de l'application avec un code d'erreur, qui est 0 par défaut (i.e
* pas d'erreur) * 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) { 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 * sortir de l'application avec un code d'erreur, qui vaut 1 par défaut (i.e
* une erreur s'est produite) * 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) { protected static final function die($message=null, int $exitcode=1) {
throw new ExitException($exitcode, $message); throw new ExitError($exitcode, $message);
} }
const ARGS = []; const ARGS = [];