modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2025-10-02 13:35:15 +04:00
parent 85f18bd292
commit fd46d60888
4 changed files with 39 additions and 12 deletions

View File

@ -9,6 +9,7 @@ use nulib\ExitError;
use nulib\os\path;
use nulib\os\sh;
use nulib\php\func;
use nulib\php\types\varray;
use nulib\str;
use nulib\ValueException;
use nur\cli\Application as nur_Application;
@ -83,6 +84,8 @@ class app {
"vardir",
"logdir",
"profile",
"facts",
"debug",
]));
}
return new static($params, $proj_params !== null);
@ -126,8 +129,8 @@ class app {
const FACT_WEB_APP = "web-app";
const FACT_CLI_APP = "cli-app";
static final function is_fact(string $fact): bool {
return self::get()->isFact($fact);
static final function is_fact(string $fact, $value=true): bool {
return self::get()->isFact($fact, $value);
}
static final function set_fact(string $fact, $value=true): void {
@ -225,6 +228,10 @@ class app {
"default_profile" => $datadirIsDefined? "prod": "devel",
"profile" => $params["profile"] ?? null,
]);
# $facts
$this->facts = $params["facts"] ?? null;
# debug
$this->debug = $params["debug"] ?? null;
$this->projdir = $projdir;
$this->vendor = $vendor;
@ -324,18 +331,27 @@ class app {
protected ?array $facts;
function isFact(string $fact): bool {
return $this->facts[$fact] ?? false;
function isFact(string $fact, $value=true): bool {
return ($this->facts[$fact] ?? false) === $value;
}
function setFact(string $fact, bool $value=true): void {
function setFact(string $fact, $value=true): void {
$this->facts[$fact] = $value;
}
protected bool $debug = false;
protected ?bool $debug;
function isDebug(): bool {
return $this->debug;
$debug = $this->debug;
if ($debug === null) {
$debug = defined("DEBUG")? DEBUG: null;
$DEBUG = getenv("DEBUG");
$debug ??= $DEBUG !== false? $DEBUG: null;
$debug ??= config::k("debug");
$debug ??= false;
$this->debug = $debug;
}
return $debug;
}
function setDebug(bool $debug=true): void {
@ -425,6 +441,8 @@ class app {
"vardir" => $this->vardir,
"logdir" => $this->logdir,
"profile" => $this->getProfile(),
"facts" => $this->facts,
"debug" => $this->debug,
"appgroup" => $this->appgroup,
"name" => $this->name,
"title" => $this->title,

View File

@ -188,6 +188,7 @@ EOT);
protected static function _initialize_app(): void {
app::init(static::class);
app::set_fact(app::FACT_CLI_APP);
msg::set_messenger(new StdMessenger([
"min_level" => msg::DEBUG,
]));

View File

@ -39,11 +39,7 @@ use nulib\str;
* - CONFIG -- une valeur scalaire
*/
class EnvConfig implements IConfig{
function __construct() {
$this->loadEnvConfig();
}
protected array $profileConfigs;
protected ?array $profileConfigs = null;
/** analyser $name et retourner [$pkey, $profile] */
private static function parse_pkey_profile($name): array {
@ -57,6 +53,7 @@ class EnvConfig implements IConfig{
}
function loadEnvConfig(): void {
if ($this->profileConfigs !== null) return;
$json_files = [];
$jsons = [];
$files = [];
@ -96,16 +93,19 @@ class EnvConfig implements IConfig{
}
function has(string $pkey, string $profile): bool {
$this->loadEnvConfig();
$config = $this->profileConfigs[$profile] ?? null;
return cl::phas($config, $pkey);
}
function get(string $pkey, string $profile) {
$this->loadEnvConfig();
$config = $this->profileConfigs[$profile] ?? null;
return cl::pget($config, $pkey);
}
function set(string $pkey, $value, string $profile): void {
$this->loadEnvConfig();
$config =& $this->profileConfigs[$profile];
cl::pset($config, $pkey, $value);
}

View File

@ -2,6 +2,7 @@
<?php
require __DIR__."/../vendor/autoload.php";
use nulib\app\app;
use nulib\app\cli\Application;
use nulib\output\msg;
@ -51,6 +52,13 @@ Application::run(new class extends Application {
private ?array $args = null;
function main() {
$profile = app::get_profile($productionMode);
$profile = self::get_profile($profile);
$productionMode = $productionMode? "production": "development";
msg::info("profile=$profile ($productionMode)");
$debug = app::is_debug()? "DEBUG": "non";
msg::info("debug=$debug");
msg::info([
"variables:",
"\na=", var_export($this->a, true),