modifs.mineures sans commentaires
This commit is contained in:
parent
51f8ae487a
commit
7d9039bcb1
110
wip/app/app2.php
110
wip/app/app2.php
|
@ -14,60 +14,6 @@ use nur\sery\wip\app\cli\Application;
|
|||
|
||||
#XXX une réécriture de app, qui remplacera app à terme
|
||||
class app2 {
|
||||
static ?func $bgapplication_enabled = null;
|
||||
|
||||
/**
|
||||
* spécifier la fonction permettant de vérifier si l'exécution de tâches
|
||||
* de fond est autorisée. Si cette méthode n'est pas utilisée, par défaut,
|
||||
* les tâches planifiées sont autorisées
|
||||
*
|
||||
* si $func===true, spécifier une fonction qui retourne toujours vrai
|
||||
* si $func===false, spécifiée une fonction qui retourne toujours faux
|
||||
* sinon, $func doit être une fonction valide
|
||||
*/
|
||||
static function set_bgapplication_enabled($func): void {
|
||||
if (is_bool($func)) {
|
||||
$enabled = $func;
|
||||
$func = function () use ($enabled) {
|
||||
return $enabled;
|
||||
};
|
||||
}
|
||||
self::$bgapplication_enabled = func::with($func);
|
||||
}
|
||||
|
||||
/**
|
||||
* Si les exécutions en tâche de fond sont autorisée, retourner. Sinon
|
||||
* afficher une erreur et quitter l'application
|
||||
*/
|
||||
static function check_bgapplication_enabled(bool $forceEnabled=false): void {
|
||||
if (self::$bgapplication_enabled === null) return;
|
||||
$enabled = boolval(self::$bgapplication_enabled->invoke());
|
||||
if (!$forceEnabled && !$enabled) {
|
||||
msg::debug("Planifications désactivées. La tâche n'a pas été lancée");
|
||||
throw new ExitError();
|
||||
}
|
||||
}
|
||||
|
||||
static bool $dispach_signals = false;
|
||||
|
||||
static function install_signal_handler(bool $allow=true): void {
|
||||
if (!$allow) return;
|
||||
$signalHandler = function(int $signo, $siginfo) {
|
||||
throw new ExitError(255);
|
||||
};
|
||||
pcntl_signal(SIGHUP, $signalHandler);
|
||||
pcntl_signal(SIGINT, $signalHandler);
|
||||
pcntl_signal(SIGQUIT, $signalHandler);
|
||||
pcntl_signal(SIGTERM, $signalHandler);
|
||||
self::$dispach_signals = true;
|
||||
}
|
||||
|
||||
static function _dispatch_signals() {
|
||||
if (self::$dispach_signals) pcntl_signal_dispatch();
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
||||
private static function isa_Application($app): bool {
|
||||
if (!is_string($app)) return false;
|
||||
return $app === Application::class || is_subclass_of($app, Application::class);
|
||||
|
@ -527,4 +473,60 @@ class app2 {
|
|||
$this->lockFiles[$name] ??= $this->getRunfile()->getLockFile($name, $this->title);
|
||||
return $this->lockFiles[$name];
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
||||
static bool $dispach_signals = false;
|
||||
|
||||
static function install_signal_handler(bool $allow=true): void {
|
||||
if (!$allow) return;
|
||||
$signalHandler = function(int $signo, $siginfo) {
|
||||
throw new ExitError(255);
|
||||
};
|
||||
pcntl_signal(SIGHUP, $signalHandler);
|
||||
pcntl_signal(SIGINT, $signalHandler);
|
||||
pcntl_signal(SIGQUIT, $signalHandler);
|
||||
pcntl_signal(SIGTERM, $signalHandler);
|
||||
self::$dispach_signals = true;
|
||||
}
|
||||
|
||||
static function _dispatch_signals() {
|
||||
if (self::$dispach_signals) pcntl_signal_dispatch();
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
||||
static ?func $bgapplication_enabled = null;
|
||||
|
||||
/**
|
||||
* spécifier la fonction permettant de vérifier si l'exécution de tâches
|
||||
* de fond est autorisée. Si cette méthode n'est pas utilisée, par défaut,
|
||||
* les tâches planifiées sont autorisées
|
||||
*
|
||||
* si $func===true, spécifier une fonction qui retourne toujours vrai
|
||||
* si $func===false, spécifiée une fonction qui retourne toujours faux
|
||||
* sinon, $func doit être une fonction valide
|
||||
*/
|
||||
static function set_bgapplication_enabled($func): void {
|
||||
if (is_bool($func)) {
|
||||
$enabled = $func;
|
||||
$func = function () use ($enabled) {
|
||||
return $enabled;
|
||||
};
|
||||
}
|
||||
self::$bgapplication_enabled = func::with($func);
|
||||
}
|
||||
|
||||
/**
|
||||
* Si les exécutions en tâche de fond sont autorisée, retourner. Sinon
|
||||
* afficher une erreur et quitter l'application
|
||||
*/
|
||||
static function check_bgapplication_enabled(bool $forceEnabled=false): void {
|
||||
if (self::$bgapplication_enabled === null) return;
|
||||
$enabled = boolval(self::$bgapplication_enabled->invoke());
|
||||
if (!$forceEnabled && !$enabled) {
|
||||
msg::debug("Planifications désactivées. La tâche n'a pas été lancée");
|
||||
throw new ExitError();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue